Javascriptを実行していて、すでに実行中のものが1つもない場合はcmd.exeとします。まだ実行されていないプロセスを実行するためのjavascriptの取得
実行中のプロセスをjavascriptで見て、その名前がリストにない場合は、実行する必要はありません。しかし、それがプロセスを実行していない場合。
Javascriptを実行していて、すでに実行中のものが1つもない場合はcmd.exeとします。まだ実行されていないプロセスを実行するためのjavascriptの取得
実行中のプロセスをjavascriptで見て、その名前がリストにない場合は、実行する必要はありません。しかし、それがプロセスを実行していない場合。
Javascriptは、OSレベルのプロセス制御をスクリプト化するのに最適なルートではありません。 javascriptがオペレーティングシステムに直接アクセスできるようになっていれば、インターネットを閲覧するのは非常に危険です。
Internet Explorerには、WindowsをJavaScriptからスクリプト化するメカニズムがありますが、これを可能にするにはセキュリティ設定を調整する必要があります。他のブラウザは可能性を提供していません。
このコードは、セキュリティ警告から、「ブロックされたコンテンツを許可」することを選択した後、Internet Explorerでnotepad.exeを実行します:
var shell = new ActiveXObject('WScript.Shell');
shell .Run("notepad.exe");
ドキュメント:http://msdn.microsoft.com/en-us/library/aew9yb99%28v=vs.85%29.aspx
をので、我々はこの方法を使用することができますそれが適切である場合は、1つを開始するために、両方のリストのアクティブなプロセスと:
function startUniqueProcess(process_name, process_path) {
// create a shell object and exec handle
var shell = new ActiveXObject('WScript.Shell');
var handle = shell.Exec("tasklist.exe");
// loop through the output of tasklist.exe
while (!handle.StdOut.AtEndOfStream) {
// grab a line of text
var p = handle.StdOut.ReadLine();
// split on space
p = p.split(' ');
// check for split lines longer than 2
if (p.length < 2)
continue;
// match process_name to this item
if (p[0] == process_name) {
// clean up and return false, process already running
shell = null;
handle = null;
return false;
} // end :: if matching process name
} // end :: while
// clean up
handle = null;
// process not found, start it
return shell.Exec(process_path);
}
// example use
var result = startUniqueProcess('notepad.exe', 'notepad.exe');
if (result === false)
alert('did not start, already open');
else
alert('should be open');
キープのIこれはコンセプトの証です。実際にはこれまでにこれまでこれを行うことはお勧めしません。ブラウザ固有、危険、悪用可能、一般的に悪い習慣です。ウェブ言語はウェブアプリケーションのためのものであり、javascriptはMicrosoftがあなたに言いたいことがあるにもかかわらず、OSスクリプト言語ではありません。 :)
おそらくJScript.netを調べたいと思うでしょう。 –
または、Rhino、ringoJS、nodejs、または他のサーバーサイドのjsプラットフォームを調べてください。 Windowsの場合は、JScript.NETが最も良いでしょう – Raynos
WSHオブジェクトモデルと同様に:http://msdn.microsoft.com/en-us/library/a74hyyw0(v=vs.85).aspx – JAAulde