gpt4 book ai didi

javascript - 如何使用 nsIProcess 在 JavaScript 中运行没有窗口的 Windows 命令

转载 作者:行者123 更新时间:2023-11-29 20:03:13 24 4
gpt4 key购买 nike

我想运行一些命令,例如:

notepad C:\file.txt

使用 Firefox 插件和 nsIProcess .我已经编写了如下代码:

var exepath = "C:\Windows\System32\cmd.exe";
var args = ["/c", "notepad", "C:\file.txt"];
var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
file.initWithPath(exepath);
var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
process.init(file);
process.run(true, args, args.length);

但我不想打开窗口。 是否可以在不打开此窗口的情况下运行某些命令?

我知道,我可以在执行命令后使用 cmd.exe/C start notepad 关闭此窗口,但它闪烁(出现和消失)。另外我想阅读退出值:

var exitval = process.exitValue;

我忘了说我不能安装任何额外的软件!

最佳答案

您可以直接运行记事本 - 不需要 cmd.exe。但是你必须找到可执行文件的完整路径。它的路径是%windir%/notepad.exe,你可以使用nsIEnvironment解析该路径(您实际上还必须使用 cmd.exe 而不是假设 Windows 安装在 c:\windows 中):

var env = Cc["@mozilla.org/process/environment;1"]
.getService(Ci.nsIEnvironment);
var exepath = env.get("WINDIR") + "\\notepad.exe";

以防万一你想运行记事本以外的东西:你必须做命令行通常做的工作,即获取 PATH 环境变量并遍历目录列表,查找文件存在的位置。

关于javascript - 如何使用 nsIProcess 在 JavaScript 中运行没有窗口的 Windows 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13252289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com