posts - 23,  comments - 20,  trackbacks - 0
有时候  多进程程序操作的时候非常容易出现进程死掉的境况  进程一死掉  后续的就是不可预料的东西了  因此 要想办法重启他  
自己前两天做项目的时候就遇到这个问题  因此在网上找到了一些代码 修改了一下  保存下来吧

 1 
 2 BOOL CSIM_ServerDlg::RestartProccess(CString strProcessName/*需要关闭的程序名称*/)
 3 {
 4     CString   strProcessName="";  
 5     
 6     DWORD           iProcessID=0;  
 7     HANDLE   hProcess;  
 8     int           iNumProcess=0;  
 9 
10     //EnumProcesses方法  
11     DWORD   m_allProcessArray[1024],   dwArraySize,   m_i_processNum;  
12     
13     HMODULE   hMod;//句柄  
14     char     m_szProcessName[1024]="";//获取名称  
15     //   获取进程标识列表.  
16     if   (   !EnumProcesses(   m_allProcessArray,   sizeof(m_allProcessArray),   &dwArraySize   ))  
17     {  
18         return   FALSE;  
19     }  
20     //计算有多少个进程.  
21     iNumProcess   =   dwArraySize   /   sizeof(DWORD);  
22     //查找每个进程.  
23     for   (   int i   =   0;   i   <   iNumProcess;   i++   )  
24     {  
25         iProcessID=m_allProcessArray[i];  
26         hProcess   =   OpenProcess(  PROCESS_TERMINATE /*必不可少*/| PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,FALSE  ,   iProcessID   );  
27         //   获取进程名称.  
28         if   (   hProcess   )  
29         {  
30             if   (   EnumProcessModules(   hProcess,   &hMod,   sizeof(HMODULE),&dwArraySize))  
31             {  
32                 GetModuleBaseName(   hProcess,   hMod,   m_szProcessName,   sizeof(m_szProcessName)   );  
33                 strProcessName.Format("%s",m_szProcessName);  
34                 strProcessName.MakeUpper();
35                 if(strProcessName.Find(strProcessName) == 0)  
36                 {  
37                     TerminateProcess(hProcess,0);                  
38                     CloseHandle(hProcess);       
39                     break;
40                 }  
41             }  
42         } 
43     }
44     Sleep(100);    
45     ShellExecute(this->m_hWnd , "open" , strProcessName , "" , "" , SW_SHOW);
46     
47     //此处应该Sleep
48     //Sleep(5000);    //等待程序打开
49     return 0;
50 }

posted on 2009-08-15 14:38 李佳 阅读(596) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年7月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用链接

留言簿

随笔分类

随笔档案

文章档案

相册

搜索

  •  

最新评论

阅读排行榜

评论排行榜