判断一下一个应用程序是否结束,应该怎么实现?

来源:互联网 发布:淘宝店铺怎么换支付宝 编辑:程序博客网 时间:2024/05/01 04:12

网上找的

 

下面是列举进程的
代码,改一下就形了,判断你要的进程在不再里面就行了  
      HANDLE   SnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);  
        if(SnapShot==NULL)  
        {  
          MessageBox("检测当前进程失败!");  
          return   FALSE;  
        }  
        SHFILEINFO   shSmall;  
        int   nIndex;  
        CString   str,prcnum;  
        PROCESSENTRY32   ProcessInfo;//声明进程信息变量  
        ProcessInfo.dwSize=sizeof(ProcessInfo);//设置ProcessInfo的大小  
        //返回系统中第一个进程的信息  
        BOOL   Status=Process32First(SnapShot,&ProcessInfo);  
        int   m_nProcess=0,num=0;  
        while(Status)  
        {  
          m_nProcess++;  
          num++;  
          //获取进程文件信息  
          SHGetFileInfo(ProcessInfo.szExeFile,0,&shSmall,  
            sizeof(shSmall),SHGFI_ICON|SHGFI_SMALLICON);  
          //在列表控件中添加映像名称  
          nIndex=m_list.InsertItem(m_nProcess,ProcessInfo.szExeFile);  
          //获取下一个进程的信息  
          Status=Process32Next(SnapShot,&ProcessInfo);  
        }  


定时器   调用   GetExitCodeProcess

方法好像行不通了,CreateToolhelp32Snapshot函数好像能导致内存泄漏,如果放在一个循环里面肯定有问题,
不知道怎么能解决这个问题,我需要在一个监视程序里面来判断另一程序是否启动,所以根据进程来判断,用上
诉方法遍历进程,但是一会后就内存使用100%了。  
不知道还有什么其他方法……
C#
Process.HasExited 属性

获取指示关联进程是否已终止的值。

原创粉丝点击