如何通过C++启动explorer.exe?

Mal*_*ist 5 c++ winapi createprocess

我正在尝试以编程方式启动explorer.exe,但我没有运气.

这是我的代码:

cout << pName << "died, lets restart it." << endl;
STARTUPINFO startupInfo = {0};
startupInfo.cb = sizeof(startupInfo);

PROCESS_INFORMATION processInformation;

if(CreateProcess(pName, NULL, NULL, NULL, false, NORMAL_PRIORITY_CLASS, NULL, NULL, &startupInfo, &processInformation) == 0){
    cout << "Error starting " << pName << ": " << GetLastError() << endl;
}
Run Code Online (Sandbox Code Playgroud)

和pName是explorer.exe

有人能告诉我我做错了什么吗?我得到错误代码'2'ERROR_FILE_NOT_FOUND

And*_*mar 4

第一个参数是应用程序名称;第二个是命令行。尝试指定“explorer.exe”作为第二个参数。

请参阅这篇MSDN 文章

lpApplicationName [输入,可选]

要执行的模块的名称。该模块可以是基于Windows的应用程序。如果本地计算机上有适当的子系统,它可以是其他类型的模块(例如,MS-DOS 或 OS/2)。

该字符串可以指定要执行的模块的完整路径和文件名,也可以指定部分名称。在部分名称的情况下,该函数使用当前驱动器和当前目录来完成规范。该函数不会使用搜索路径。该参数必须包含文件扩展名;不假定默认扩展名。