- C/C++ code
// 请在前边加上 tlhelp32.h和toolhelp.libvoid CResAdjustDlg::RestartExplorer(){ // 获取进程快照 HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (INVALID_HANDLE_VALUE == hSnapshot) { MessageBox(_T("Get processes snapshot failure."), _T("ERROR"), MB_ICONERROR|MB_OK); return; } PROCESSENTRY32 pe32; BOOL bRet = FALSE; BOOL bFirst = TRUE; DWORD dwExplorerProcId = (DWORD)-1; memset(&pe32, 0x00, sizeof(PROCESSENTRY32)); pe32.dwSize = sizeof(PROCESSENTRY32); // 遍历进程 for ( ; ; ) { __try { if (bFirst) { bRet = Process32First(hSnapshot, &pe32); bFirst = FALSE; } else { bRet = Process32Next(hSnapshot, &pe32); } if (!bRet) { if (ERROR_NO_MORE_FILES != GetLastError()) { MessageBox(_T("Process32First() error.")); } break; } //MessageBox(pe32.szExeFile); if (_tcsicmp(_T("explorer.exe"), pe32.szExeFile) == 0) { dwExplorerProcId = pe32.th32ProcessID; break; } } __except(EXCEPTION_EXECUTE_HANDLER) { break; } } if (dwExplorerProcId != (DWORD)-1) { PROCESS_INFORMATION pi; HANDLE hExplorer = OpenProcess(0, FALSE, dwExplorerProcId); if (hExplorer != NULL) { TerminateProcess(hExplorer, 1); if (!CreateProcess(_T("explorer.exe"), NULL, NULL, NULL, FALSE, 0, NULL, NULL, NULL, &pi)){ MessageBox(_T("Create explorer.exe process failure.")); } else { // MessageBox(_T("Create process success.")); } } CloseHandle(hExplorer); } CloseToolhelp32Snapshot(hSnapshot);}
做ce6动态调整分辨率的工作,改完驱动发现调整后图片不能正常显示,后来重启explorer图标显示就好了,觉得这段重启进程的代码挺常用的,贴出来共享,不会的可以参考下,适合重启各种进程,高手请提意见,勿喷!
------解决方案--------------------
不错!
------解决方案--------------------
楼主的分享精神要赞一下。
代码的缩进方式,和for ( ; ; ),很有欧美程序员的风格。
呵呵。
------解决方案--------------------
太赞啦~~~~~~
------解决方案--------------------
不错。
------解决方案--------------------
很棒。
------解决方案--------------------
呵呵,从汇编来看。while(1)比for(;;) 会多几条判断判断指令。。
------解决方案--------------------
无聊的测试了下,
while(1);
0041138E mov eax,1
00411393 test eax,eax
00411395 je wmain+29h (411399h)
00411397 jmp wmain+1Eh (41138Eh)
for(;;);
00411399 jmp wmain+29h (411399h)
PC上debug版的结果。。。rlease下一致
WCE上 debug跟rlease一样是一条jmp。。
------解决方案--------------------
------解决方案--------------------
对,这个在WINCE里会经常用到,感谢分享出来。
------解决方案--------------------
判分的感觉真好
------解决方案--------------------
很好,不错
------解决方案--------------------
很好..收了
------解决方案--------------------