7
10

More than 5 years have passed since last update.

node.jsでchrome.exeをオプション付きで起動して終了するには

Last updated at Posted at 2014-06-11

背景

Atom ShellからChromeブラウザをオプション付きで起動する必要があった。
Windows環境ではchrome.exeが固定された場所に配置されないので、この辺りにも多少配慮したつもり。

Chromeを起動する

chrome.exeのありか

以下の環境変数?を使ってみた。

  • process.env.LOCALAPPDATA
  • process.env.ProgramFiles
var spawn = require('child_process').spawn;

function getWin32ChromePath() {
  var path = [
    process.env.LOCALAPPDATA + "\\Google\\Chrome\\Application\\chrome.exe",
    process.env.ProgramFiles + "\\Google\\Chrome\\Application\\chrome.exe"
  ];

  for (var i = 0; i < path.length; i++) {
    if (fs.existsSync(path[i])) {
      return path[i];
    }
  }
  return null;
}

var chromeRuntimes = {
  win32: getWin32ChromePath(),
  darwin: "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
  linux: "" //頑張ってください
};

var gChrome = spawn(chromeRuntimes[process.platform], [
    "--app=https://localhost:4430/webrtc.html",   // シンプルなウィンドウでURLを開く
    "--enable-usermedia-screen-capturing", // デスクトップキャプチャー機能を有効
    "--ignore-certificate-errors",   // オレオレ証明書の警告を無効
    "--window-size=320,128",   // キャプチャーボタンに必要な小さ目のサイズを指定
    "--user-data-dir=" + __dirname + "/chromeStuff" //
  ]);

Chromeを終了する

child#kill([signal])でプロセスにシグナルを遅れる。

gChrome.kill();

引数なしがSIGTERMに相当。

Link

関連記事

7
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
10