问题标签 [external-process]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1150 浏览

c - C - 从外部进程调用函数而不导出函数

我试图弄清楚如何在不导出函数的情况下调用函数。

好的,所以我有一个 exe 文件,其中定义了“add”,这个 exe 是一个 win32 控制台应用程序并加载一个 DLL。DLL 还旨在使用 exe 文件中的 add 函数(没有导出)

这是我的主要 win32 控制台应用程序文件:

这是 hook.dll 的代码:

我反汇编了我的win32控制台应用程序,找到了add函数的地址

问题是当我调用 LoadLibrary 时,它返回 998,我认为这是错误代码访问冲突。我想这是有道理的,因为该内存区域可能受到保护。

有小费吗?

(另外我用的反汇编器是Ida Pro免费版,detours库是微软提供的。)

0 投票
12 回答
37152 浏览

visual-studio - 为什么 VS2010 调试器不会在我的断点处停止?

我正在开发 VS2010 中的 C#.NET 类库项目。在我的项目设置 -> 调试设置中,我将项目设置为启动一个运行非常简单的 jscript 文件 (test.js) 的外部程序 (C:\Windows\SysWOW64\wscript.exe)。该脚本只是创建类的一个实例并调用其中一个方法。

问题是当我开始调试时,VS2010 不会在我的任何断点处停止。如果我在 VS2008 中打开完全相同的项目,它确实会在断点处停止。某处是否有阻止断点被击中的新设置?有没有其他人遇到过这个问题?

0 投票
9 回答
4209 浏览

c# - 打开没有 Process.start 的网站

如何在没有以下内容的浏览器中打开网站URL Process.start(...)

我不能Process.Start()在 Windows 服务中使用,我不知道为什么。

0 投票
1 回答
18204 浏览

java - ProcessBuilder 与 Runtime.exec()

我正在尝试使用 Inkscape 的命令行功能在 Java 中创建一个前端应用程序来处理批量 SVG 转换。我正在从https://sourceforge.net/projects/conversionsvg/获取并更新代码。原始开发人员通过Runtime.getRuntime().exec(String)处理调用 Inkscape 的方式。我遇到的问题是使用methodA和methodB之间的一些不一致。我创建了一个简单的 java 测试项目来演示正在执行的不同操作。

调用者测试.java

RuntimeExecCaller.java

ProcessBuilderCaller.java

结果

两个methodA(String)调用都有效,但是当调用methodB(String[])时,Inkscape 正在启动并且参数传递不正确。在methodB(String[])执行后,我会为每个说法得到一个 Inkscape 错误对话框

加载请求文件失败 -f C:/test.svg -D -w 100 -h 100 -e C:\RuntimeExec-methodB.png

加载请求文件失败 -f C:/test.svg -D -w 100 -h 100 -e C:\ProcessBuilder-methodB.png

当我单击对话框上的关闭时,Inkscape 会弹出一个新的空白文档。所以,我想我有几个问题:

Runtime.getRuntime().exec(String) 和 Runtime.getRuntime().exec(String[]) 有什么区别?

JavaDoc 说Runtime.exec(String)调用Runtime.exec(command, null)(即Runtime.exec(String cmd, String[] envp)),后者又调用Runtime.exec(cmdarray, envp)(即Runtime .exec(字符串[] cmdarray,字符串[] envp))。所以,如果Runtime.getRuntime().exec(String ) 无论如何都在调用Runtime.exec(String[]),为什么我在使用不同的方法时会得到不同的结果?

Java 根据调用的方法以不同方式设置环境的幕后发生了什么?

0 投票
4 回答
1705 浏览

c++ - 从 Windows 服务运行外部程序 (pscp) 不起作用

我正在用 C++ (Visual Studio 2010) 编写 Windows 服务,该服务必须通过安全副本将文件发送到远程服务器(为此我使用 pscp.exe)。

因此,我正在使用该system功能启动 pscp.exe,并且在作为普通应用程序运行时一切正常。

但是,如果我尝试作为服务运行,该服务会启动 pscp.exe(我可以在任务管理器中看到),但 pscp.exe 会冻结并且不会向远程主机发送任何内容。而且即使我停止服务,我也需要自己杀死 pscp 进程。

我在一些论坛中阅读以允许该服务“与桌面交互”,但这并没有解决我的问题。

我还尝试更改服务登录的用户帐户,但没有结果。

有任何想法吗?

从 Windows 服务运行外部程序似乎非常困难,即使这个外部程序没有任何 GUI,如 pscp.exe。

谢谢!

——奥古斯托·卡林吉

0 投票
1 回答
240 浏览

java - 是否有任何远程跨平台方式来执行外部进程?

我正在寻找有关如何执行跨平台流程的建议。

我已经编写了我的应用程序的 Java 和 Ruby 实现,但它不是特定于语言的问题,而是特定于平台的问题。

搜索 Ubuntu /usr/bin/ 上的 EG 以查找我所做的任何事情

对于 windows,它将搜索我正在运行的当前目录。但是,如果将 windows 可执行文件复制到当前目录,则运行时链接错误将导致它崩溃(DLL 不存在)

HandBrakeCLI 的默认安装路径在“Program Files(x86)/HandBrake”中(x86 显然只有 64 位),但据我所知,Program Files 不在搜索路径中。

对于 MacOSX,除了使用“打开”命令之外,我不知道如何从命令行执行 Mac“应用程序文件夹”。但这不是一个问题,因为我真正追求的是 HandBrakeCLI,它只是一个普通的可执行文件。但是 HandBrakeCLI 未安装到 /usr/bin 或 /usr/local/bin (或其中的任何变体)

我最好的想法是制作一个包含 HandBrakeCLI 路径的配置文件。但是,如果我走那条路,那么能够检测到我在哪个平台上将是理想的,但这是另一个问题。一个我只用 C #ifdef 部分完成,而不是在 Ruby 或 Java 中完成。

我将不胜感激任何和所有输入。

0 投票
3 回答
1415 浏览

java - 从 Java 与 C++ 进程通信

首先,我在网站上看到了一些关于这个问题的 Q,但没有看到任何解决我问题的答案。

我有一个用 Java 编写的程序,它调用了一个用 C++ 编写的 cmd 程序。(这是一个假设,因为我没有实际来源)我知道 C++ 程序的预期 I/O,在 cmd 中它是两行输出,然后等待字符串输入。我知道程序的第一行输出是通过错误流,我正确接收它(这是预期的),但我没有在错误或输入流中得到第二行。我试图在第一行(错误行)之后立即写入程序并且没有卡住,但没有响应。我尝试为每个流使用 3 个不同的线程,但同样,在第一行之后的输入/错误流中没有收到任何内容,并且程序没有响应通过输出流写入。

我的初始化程序是:

是否有可能,或者它可能取决于 C++ 程序?

谢谢,宾亚明

0 投票
2 回答
261 浏览

java - 用于调用外部程序的 Java 库

我正在寻找一个有助于运行外部程序的 JAVA 库。现在我在一个单独的线程中“手动”运行它们并捕获 I/O。

我有几个不同的外部工具可以运行,我需要的是一种统一的方法来做到这一点。我必须处理的任务包括: - 根据预定义的模板准备输入文件 - 运行命令 - 等待结果并解析输出文件 - 维护管道

整个管道可以被认为是一个以外部工具为节点、以数据流为边的图。如果数据流允许,如果软件可以在并行线程中运行一些命令,那就太好了。

是否存在此类问题的现有解决方案?

根据我得到的答案,我觉得我必须澄清:我不需要管道。数据流可以用文件来解决,无论如何我都需要。此外,管道必须是线性的(1 个输出 -> 1 个输入),但我需要一个图表

我已经在 python 中有一个原型——一堆脚本。这很好,但对我来说 - 不可扩展。此外,我调用的一些程序是用java编写的,所以用java编写整个程序会很方便。最好的,蒂姆

0 投票
3 回答
1154 浏览

java - 使用 Java 启动外部程序?

问题:一定分钟后自动关闭程序。

解决方案:这是我想出的解决问题的方法(在 Ubuntu 上与 Rhythmbox 一起使用):

}

0 投票
3 回答
443 浏览

python - C++:如何检查外部程序是否正在运行?

我用 C++ 运行一个外部程序:

如果它运行超过 n 秒,我想终止该进程。我可以像这样在 Python 中做到这一点:

C++ 中 p.poll() 和 p.terminate() 的替代方法是什么?

谢谢

也欢迎涉及 WinAPI 的 PS 解决方案。