我想要做的是从另一个.exe打开一个.exe。我真的不知道该怎么做,所以我搜索了互联网。我从互联网上尝试了一些建议的方法,但它没有用。
这是我的代码:
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
system ("OpenFile.exe");
system ("pause");
return 0;
}
当我在DEV C ++中运行它时,它没有编译,我收到一个错误。有人可以帮助我吗?
答案 0 :(得分:63)
您应始终避免使用system()
,因为
您应该使用CreateProcess()。
您可以使用Createprocess()来启动.exe并为其创建新进程。 应用程序将独立于调用应用程序运行。
以下是我在其中一个项目中使用的示例:
#include <windows.h>
VOID startup(LPCTSTR lpApplicationName)
{
// additional information
STARTUPINFO si;
PROCESS_INFORMATION pi;
// set the size of the structures
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
// start the program up
CreateProcess( lpApplicationName, // the path
argv[1], // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
0, // No creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi // Pointer to PROCESS_INFORMATION structure (removed extra parentheses)
);
// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
}
编辑:您获得的错误是因为您需要指定.exe文件的路径而不仅仅是名称。 Openfile.exe可能不存在。
答案 1 :(得分:14)
我在这方面取得了很大的成功:
#include <iostream>
#include <windows.h>
int main() {
ShellExecute(NULL, "open", "path\\to\\file.exe", NULL, NULL, SW_SHOWDEFAULT);
}
如果您有兴趣,请填写完整的文档:
http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx
答案 2 :(得分:3)
试试这个:
#include <windows.h>
int main ()
{
system ("start notepad.exe") // As an example. Change [notepad] to any executable file //
return 0 ;
}
答案 3 :(得分:1)
提供文件'openfile.exe'的完整路径 并且记住不要在路径中提出斜杠'/' C:/用户/用户名/等.... 而不是那种用途 C:\ Users \用户名\等 (对于Windows)
可能会帮助你
答案 4 :(得分:0)
您收到此错误是因为您未提供完整路径。 (C:\用户\ file.exe程式) 如果要删除此错误,请提供完整路径或将该应用程序(您要打开)复制到项目(.exe)存在/保存的文件夹中。
#include <windows.h>
using namespace std;
int main()
{
system ("start C:\\Users\\Folder\\chrome.exe https://www.stackoverflow.com"); //for opening stackoverflow through google chrome , if chorme.exe is in that folder..
return 0;
}
答案 5 :(得分:0)
当可执行路径在系统调用中有空格时!
#include<iostream>
using namespace std;
main()
{
system("explorer C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe ");
system("pause");
}