0

私のコード:

var fpath="C:\\TVT_"+cur_date+"_"+cur_time+".avi";

Components.utils.import("resource://gre/modules/FileUtils.jsm");

var env = Components.classes["@mozilla.org/process/environment;1"]
                    .getService(Components.interfaces.nsIEnvironment);
var shell = new FileUtils.File(env.get("COMSPEC"));

var args = ["/c", "cd.. & cd.. & C: & cd C:/ffmpeg/bin & record.bat "+fpath];

var process = Components.classes["@mozilla.org/process/util;1"]
                     .createInstance(Components.interfaces.nsIProcess);
process.init(shell);
process.runAsync(args, args.length);

このコードでバッチファイルを実行すると、常にコマンドプロンプトウィンドウのプロンプトが表示されます。

そのウィンドウを非表示にしてバッチプロセスをサイレントに実行する方法はありますか?

WindowsXPおよびFirefox12.0の使用

ありがとう..

4

2 に答える 2

1

Firefox がコンソール ウィンドウなしでバッチ ファイルを実行できるとは思えません。ただし、これは Windows Scripting Host を使用して可能ですWshShell.Run()(intWindowStyleパラメーターは 0 にする必要があります)。record.jsたとえば、次の内容の JScript ファイルが必要です。

var dir = WScript.ScriptFullName.replace(/[\/\\]+[^\/\\]*$/, "");
var Shell = WScript.CreateObject("Wscript.Shell");
Shell.CurrentDirectory = dir;
Shell.Run("record.bat", 0, true);

このスクリプトは、独自のパスからディレクトリを推測record.batし、同じディレクトリで実行されます。次に、このスクリプトを次のように実行できます。

var script = new FileUtils.File("c:\\ffmpeg\\bin\\record.js");

var process = Components.classes["@mozilla.org/process/util;1"]
                        .createInstance(Components.interfaces.nsIProcess);
process.init(script);
process.runAsync([], 0);
于 2012-05-25T12:57:11.547 に答える
0

バッチ プロセスをサイレント モードで実行する@echo offには、最初の行に追加します。

于 2012-05-25T10:49:15.907 に答える