【发布时间】:2018-05-05 11:30:15
【问题描述】:
我正在尝试使用 Processing 运行我的 Virtual C++ 项目的已发布 .exe 文件。我尝试过launch() 和exec(),它们都适用于任何其他.exe 文件或不同的文件类型。我正在使用 Launch() 的处理参考代码。
void setup() {
size(200, 200);
}
void draw() {
// draw() must be present for mousePressed() to work
}
void mousePressed() {
println("Opening Process_4");
launch("C:\\Users\\User\\Documents\\Processing\\ProjectFile\\x64\\Release\\ProjectFile.exe");
}
我已经尝试过很多事情,比如更改斜杠、将我的 Visual C++ 文件移动到 C: 或 D:,我什至使用 Processing 创建了一个批处理文件 (.bat)。
void setup() {
size(200, 200);
}
void draw() {
// draw() must be present for mousePressed() to work
}
void mousePressed() {
PrintWriter output=null;
output = createWriter("myfile.bat");
output.println("cd "+sketchPath("C:\\Users\\User\\Documents\\Processing\\ProjectFile\\x64\\Release"));
output.println("start ProjectFile.exe");
output.flush();
output.close();
output=null;
launch(sketchPath("C:\\Users\\User\\Documents\\Processing\\ProjectFile\\x64\\Release")+"myfile.bat");
}
无论我做什么,即使 .exe 和 .bat 文件在我双击它们时工作得很好,但当我将它们用于相同目的时,launch() 或 exec() 什么也不做。我已经尝试了 2 天来解决这个问题,所以如果有人能够让我摆脱痛苦,那就太好了。提前致谢。
【问题讨论】:
-
您的应用是 32 位的吗?还有很多缺失的信息,例如sketchPath() 做什么。 exec() 和 launch() 已经过时了,请使用 WinAPI 的 CreateProcess 系列。或者基于 ISO 的库,如果你的 IDE 已经支持的话。
-
感谢您的回答和 cmets。我只是想出了如何做到这一点,所以我会留下对我有用的线路,在这里回答可能的未来需求。
标签: batch-file visual-c++ exec processing launch