一段重启WinCE下explorer.exe的代码

C/C++ code
  
  
// 请在前边加上 tlhelp32.h和toolhelp.lib void 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); }

觉得这段重启进程的代码挺常用的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JXES智能生态系统

如文章对你有用,请作者喝个咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值