2017-07-10 14 views
0

コンピュータを再起動してからnode-auto-launchを使用してアプリケーションを起動しています。このアプリケーションはWindows用です。私は、このアプリケーションをバックグラウンドで動作するように、デフォルトで起動したいと考えています。私はこれを達成することができますか?電子:コンピュータの再起動後にアプリケーションを起動すると最小化

let bizAnalystAutoLauncher = new AutoLaunch({ 
    name: 'BizAnalystDesktop' 
}); 

bizAnalystAutoLauncher.enable(); 
bizAnalystAutoLauncher.isEnabled() 
    .then(function (isEnabled: boolean) { 
    if (isEnabled) { 
     return; 
    } 
    bizAnalystAutoLauncher.enable(); 
}) 
.catch(function (err: any) { 
// handle error 
console.log(err); 
}); 

私はアプリケーションを非表示にしたくありません。アプリケーションアイコンは、タスクバーのシステムトレイに表示されます。

答えて

0

私がやる方法は、node-auto-launchの代わりに、起動メニューPrograms > startupに引数を付けてショートカットを作成します。アプリが実行されたら、その引数がprocess.argvにあるかどうかをチェックします。

var startMinimized = false; 
if (process.argv[2] && process.argv[2].indexOf('startMinimized') != -1) { 
    startMinimized = true; 
} 

var mainWindow = new BrowserWindow({show: !startMinimized}); 
if (startMinimized) { 
    mainWindow.minimize(); 
} 
:だから、あなたは、あなたが起動時にウィンドウを最小化するために、このようないくつかのスクリプトを書くことができ windows-shortcuts

require('windows-shortcuts').create(
    '%APPDATA%/Microsoft/Windows/Start Menu/Programs/Startup/myApp.lnk', { 
     target: process.execPath, 
     args: 'startMinimized', 
     icon: 'path/to/icon' 
    }, function (err) { 
     if (err) { 
      throw Error(err); 
     } 
    } 
); 

と呼ばれるこのモジュールを使用することができますstartMinimizedの引数で、スタートメニューのショートカットを作成するための

process.argvは、アプリが起動する引数の配列です。最初のパスは.exeパスです。 2番目の引数はリス引数です。

0

「トレイに最小限に抑える」という行動をしたいと思っています。

アプリの通常の方法を初期化しますが、代わりにmainWindow.show()のあなたがメインウィンドウを初期化した後mainWindow.minimize()を呼び出し、その後、mainWindow.setSkipTaskbar()を経由して非表示にしたり、アプリのタスクバーのアイコンを表示するmainWiondwのminimizerestoreイベントのためのEventListenerを追加します。

... 
mainWindow.on('restore',() => { 
    mainWindow.setSkipTaskbar(false) 
}) 

mainWindow.on('minimize',() => { 
    mainWindow.setSkipTaskbar(true) 
}) 
... 

documentationのようなトレイメニューを追加しますが、アプリウィンドウを復元するメニュー項目を追加することを忘れないでください。そうしないと、最小化後にアクセスできないアプリになります。

... 
const trayMenu = Menu.buildFromTemplate([ 
    { 
     label: 'Show', 
     click:() => { 
      mainWindow.restore() 
     } 
    }, 
    { 
     label: 'Quit', 
     role: 'quit' 
    } 
]) 
tray.setContextMenu(trayMenu) 
... 
関連する問題