javascript - Firefox 扩展中的 Window less embedded exe

标签 javascript c++ windows firefox-addon

我开发了一个 firefox 扩展(附加组件),并在其中嵌入了一个 c++ 控制台应用程序 (.exe)。我将命令行参数传递给该 exe,它执行与这些参数相关的一些操作。问题是每当调用该 exe 时,控制台窗口都会出现并消失。我希望它保持沉默。有什么想法吗?

最佳答案

我假设您现在实际上通过 nsIProcess 执行您的可执行文件。不幸的是,nsIProcess 无法让您对进程创建进行足够的控制,从而避免出现控制台窗口。

您要么必须修改控制台应用程序本身,使其成为“Windows”应用程序而不是“控制台”应用程序(WinMain()main() ), 或者如果那是不可能的,你将不得不以某种方式调用 CreateProcess自己使用 dwCreationFlags,包括 CREATE_NO_WINDOW 标志。

后者可以通过以下方式完成:

  • 如果您的附加代码已经是 C++,则直接使用适当的标志调用 CreateProcess
  • 使用js-ctypes导入 CreateProcess,定义必要的结构并调用它,替换您对 nsIProcess 的使用。
  • 使用另一个辅助应用程序,它是一个“Windows”应用程序,它将调用 CreateProcess 以使用 CREATE_NO_WINDOW 启动您的实际应用程序。

关于javascript - Firefox 扩展中的 Window less embedded exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19995394/

相关文章:

c++ - gcc (mac/linux) 错误没有匹配的调用函数,而 VisualStudio 编译正常

javascript - 是否可以在 Mozilla 中将网站设置为主页?

javascript - setInterval,这个,再一次

c++ - 使用类定义之外的默认参数定义的默认构造函数,为什么会这样?涉及的模板会发生什么?

c++ - 带有超声波传感器的arduino汽车

c++ - 为什么正在运行的程序的性能会随着时间的推移而变得更好?

c# - 从 iframe 重定向到页面

javascript - 如何转义存储颜色名称的 Less 变量中的引号?

python - 从 QDockWidget 附加和分离外部应用程序时的问题

c - Windows 中的高级 C 编程(pthreads、信号和信号量,天哪!)