我有一個程序,試圖在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