下面是列举进程的
代码,改一下就形了,判断你要的进程在不再里面就行了
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);
}
二楼的
方法好像行不通了,CreateToolhelp32Snapshot函数好像能导致内存泄漏,如果放在一个循环里面肯定有问题,不知道怎么能解决这个问题,我需要在一个监视程序里面来判断另一程序是否启动,所以根据进程来判断,用上诉方法遍历进程,但是一会后就内存使用100%了。
不知道还有什么其他方法……
C#
Process.HasExited 属性
获取指示关联进程是否已终止的值。