diff --git a/src/inject-preload.js b/src/inject-preload.js
index 4b631826fb00be2aecf96044967b9041004a51ab..760df3739886db26499f2e281f1ed696a0770d94 100644
--- a/src/inject-preload.js
+++ b/src/inject-preload.js
@@ -46,7 +46,16 @@ Object.defineProperty(angular, 'bootstrap', {
             return value;
           });
         }
-      ]);
+      ])
+      .run(['$rootScope', ($rootScope) => {
+        MMCgi.isLogin ?
+        ipcRenderer.send("wx-rendered", true) :
+        ipcRenderer.send("wx-rendered", false);
+
+        $rootScope.$on("newLoginPage", () => {
+          ipcRenderer.send("user-logined", "");
+        });
+      }]);
     }
     return angularBootstrapReal.apply(angular, arguments);
   } : angularBootstrapReal,
diff --git a/src/main.js b/src/main.js
index f1ad4cf4bdc52a291af5ef23942ac46ec6598fe9..53b7398018862834f5242cb5accefdda74a07877 100644
--- a/src/main.js
+++ b/src/main.js
@@ -12,6 +12,9 @@ const Menu = electron.Menu;
 const injectBundle = require('./inject-onload.js');
 const messageHandler = require('./message.js');
 
+const WINDOW_SIZE = { width: 800, height: 600 };
+const WINDOW_SIZE_LOGIN = { width: 380, height: 540 };
+
 const WINDOW_TITLE = 'Electronic WeChat';
 
 let browserWindow = null;
@@ -20,8 +23,6 @@ let appIcon = null;
 let createWindow = () => {
   browserWindow = new BrowserWindow({
     title: WINDOW_TITLE,
-    width: 800,
-    height: 600,
     resizable: true,
     center: true,
     show: true,
@@ -39,7 +40,7 @@ let createWindow = () => {
   });
 
   browserWindow.webContents.setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36");
-  //browserWindow.webContents.openDevTools();
+  // browserWindow.webContents.openDevTools();
 
   browserWindow.loadURL("https://wx.qq.com/");
 
@@ -78,6 +79,8 @@ let createWindow = () => {
     shell.openExternal(messageHandler.handleRedirectMessage(url));
   });
 
+  browserWindow.hide();
+
   createTray();
 };
 
@@ -99,6 +102,10 @@ ipcMain.on('badge-changed', (event, num) => {
   }
 });
 
+ipcMain.on('user-logined', () => renderWindow(true));
+
+ipcMain.on('wx-rendered', (event, isLogined) => renderWindow(isLogined));
+
 ipcMain.on('log', (event, message) => {
   console.log(message);
 });
@@ -107,6 +114,22 @@ ipcMain.on('reload', (event, message) => {
   browserWindow.loadURL("https://wx.qq.com/");
 });
 
+let setResizable = (isLogined) => {
+  browserWindow.setResizable(isLogined);
+};
+
+let setSize = (isLogined) => {
+  const size = isLogined ? WINDOW_SIZE : WINDOW_SIZE_LOGIN;
+  browserWindow.setSize(size.width, size.height);
+  browserWindow.center();
+  browserWindow.show();
+};
+
+let renderWindow = (isLogined) => {
+  setResizable(isLogined);
+  setSize(isLogined);
+}
+
 let createTray = () => {
   const nativeImage = require('electron').nativeImage;
   let image = nativeImage.createFromPath(path.join(__dirname, '../assets/status_bar.png'));