我尝试从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"");
他们都没有工作,有人知道如何完成这项工作 提前谢谢
答案 0 :(得分:2)
使用规范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
答案 1 :(得分:2)
不要像在命令提示符(cmd)中那样尝试使用两次引号。在c ++代码中,如果文件路径中有“空格”,则无需在引号中指定它。
您应该使用'WinExec'而不是'system',因此不会显示控制台窗口。
e.g。
WinExec("C:\\Program Files\\VideoLAN\\VLC\\vlc.exe",0);
答案 2 :(得分: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"");
↑一开始就有一个无关的空间。空间很重要,因为引用了命令字符串。但是你需要引号,因为路径包含一个空格。