我有一个程序,试图在Windows 7中重新启动资源管理器;它首先结束该过程,然后再次启动它。为什么不CreateProcess()工作?
简单吗?
所以它看起来 - 它确实似乎工作。不过,我注意到一些有趣的事情:当我尝试启动一个程序(比如说XP的Power Calculator powertoy)兼容模式时,它不再有效!没有任何反应 - 该过程已创建并立即退出。
如果我通过任务管理器的运行对话框运行资源管理器,程序运行良好。
发生了什么事?
#include <windows.h>
int main()
{
PROCESS_INFORMATION pi;
STARTUPINFO si = {sizeof(si)};
TCHAR path[] = TEXT("explorer");
DWORD f = 0; //I tried a variety of these flags; didn't work
return CreateProcess(NULL, path, NULL, NULL, FALSE, f, NULL, NULL, &si, &pi);
}
编辑1:
- ,这是32位与WOW64重定向禁用并没有区别的事实。我做了64位,问题是一样的。
- 我试过
ShellExecute
但它也没有工作。
编辑2:
完全相同的代码只是为我工作了几次,然后再停止工作......吧?
你为什么要这样做? explorer.exe的设计不是以这种方式使用。 – 2011-06-29 03:41:44