在 Windows 中从 C++ 启动.exe文件

starting an .exe file from c++ in windows

本文关键字:exe 文件 启动 C++ Windows 中从      更新时间:2023-10-16

我尝试在c ++ Visual studio中从我的代码启动一个程序。我尝试了这些cmds:

system( "" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe"");
system( "start" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe"");
system( "" C:\Program "" Files""(x86)\scilab-5.3.3\bin\WScilex.exe"");     

他们都没有工作,有没有人知道如何完成这项工作提前感谢

使用规范的ShellExecute WinAPI函数。最简单的情况:

ShellExecute(hwnd, "open", "c:\MyProgramPath\WScilex.exe", NULL, NULL, 0);

有关更多信息,请参阅 http://msdn.microsoft.com/en-us/library/windows/desktop/bb776886(v=vs.85).aspx

不要尝试两次使用引号,就像在命令提示符 (cmd) 中所做的那样。在 c++ 代码中,如果文件路径中有"空格",则无需在引号中指定它。

您应该使用"WinExec"而不是"系统",因此不会显示控制台窗口。

例如

WinExec("C:\Program Files\VideoLAN\VLC\vlc.exe",0);

system 函数将字符串作为命令传递给 Windows [cmd.exe] 中的系统默认命令解释器。

因此,在命令的开头没有多余的空格:

system( ""C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe"" );

[cmd.exe] 命令解释器对路径中的正斜杠感到满意。


您的第一次尝试:

system( "" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe"");

↑ 开头有一个多余的空间。空格很重要,因为命令字符串是用引号括起来的。但是您需要引号,因为路径包含一个空格。

您的第二次尝试:

system( "start" C:/Program Files (x86)/scilab-5.3.3/bin/WScilex.exe"");

↑ 不应编译。这不是真正的代码。至少不是您已成功编译和运行的代码。

您的第三次尝试:

system( "" C:\Program "" Files""(x86)\scilab-5.3.3\bin\WScilex.exe"");

↑ 开头有一个多余的空间。空格很重要,因为命令字符串是用引号括起来的。但是您需要引号,因为路径包含一个空格。