Deno.run()でコマンドラインなどの機能を利用できますが、Deno.runから呼び出されたアプリケーションはバックグラウンドでしか動作できないっぽいです。
Deno.runからエクスプローラやExcelなどを起動したい場合のサンプルが以下。
Deno.runからエクスプローラやExcelなどを起動したい場合のサンプルが以下。
例えば「Deno.run({cmd:["notepad"]})」とした場合、新しいメモ帳が画面上に表示されることはありません。
タスクマネージャでnotepadのプロセスが起動していないか確認してみましたが、起動していませんでした。
「WScript.Sleep(1000 * 60)」とするだけの「test.js」を作成し、「Deno.run({cmd:["cscript", "test.js"]})」を実行したところ、1分間はcscriptのプロセスが起動している事がタスクマネージャから確認できましたが、ウィンドウは表示されませんでした。
エクスプローラなども同様。
しかしcscriptを経由すれば表示できる事を動作確認しました。
外部アプリケーションを起動したいだけの場合は「stdout : 'piped'」や「await p.output()」は不要ですが、これが無いと外部アプリケーションが起動する前にdenoが終了してしまうせいか外部アプリケーションも起動しなくなってしまうので、標準出力を読み込むまでdenoに待機させる目的で入れてあります。
それ以外の方法でdenoの処理が継続するプログラムの場合は省略してもOK、な筈。
実行結果
タスクマネージャでnotepadのプロセスが起動していないか確認してみましたが、起動していませんでした。
「WScript.Sleep(1000 * 60)」とするだけの「test.js」を作成し、「Deno.run({cmd:["cscript", "test.js"]})」を実行したところ、1分間はcscriptのプロセスが起動している事がタスクマネージャから確認できましたが、ウィンドウは表示されませんでした。
エクスプローラなども同様。
しかしcscriptを経由すれば表示できる事を動作確認しました。
外部アプリケーションを起動したいだけの場合は「stdout : 'piped'」や「await p.output()」は不要ですが、これが無いと外部アプリケーションが起動する前にdenoが終了してしまうせいか外部アプリケーションも起動しなくなってしまうので、標準出力を読み込むまでdenoに待機させる目的で入れてあります。
それ以外の方法でdenoの処理が継続するプログラムの場合は省略してもOK、な筈。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const p = Deno.run({ | |
cmd: [ | |
"cscript", | |
"GUI起動.js", | |
"notepad" | |
], | |
stdout : 'piped' | |
}); | |
const o = await p.output(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var path = WScript.Arguments(0) | |
var shell = new ActiveXObject('WScript.Shell') | |
shell.run(path, 1, false) |
実行結果
0 件のコメント:
コメントを投稿