【问题标题】:Launching Visual C++ .exe file in Processing在处理中启动 Visual C++ .exe 文件
【发布时间】: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


【解决方案1】:

这是对我有用的线路。我在发布的第一个代码中使用了 exec() 而不是 launch()。

exec(new String[] {"cmd", "/c","start","/w", "C:\\Users\\Ozan\\Documents\\Processing\\PlateRecognition\\x64\\Release\\myfile.bat"});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    • 2016-12-04
    • 2017-05-18
    • 1970-01-01
    相关资源
    最近更新 更多