请教大侠,我想在程序里判断某个exe程序是否正在运行,请问如何实现谢谢!
急!
急!
解决方案 »
- CEdit的问题?
- 关于CComboBox的问题???向高手求救哦!!!
- PostQuitMessage(0);以后有没有必要return
- 高分请教如何传递一个结构体从VC COM组件-〉.NET VB程序?(在线等待)
- 在线急求高手,怎么调用类的成员函数?
- 有关键盘钩子调试的问题(急!在线等待)
- ODBC连接数据库(SQL Server2000)的问题--再线等待
- 关于在桌面上用TextOut输出文字遇到的不能透明和两次有重叠的问题
- 谁能推荐一个关于Word ActiveX开发的源码
- 请问怎样让一个程序只运行一个,再次运行时激活将以运行的程序显示为当前窗口?
- 急问网络通讯中的错误控制
- 有没有办法改变组合框收缩状态下的高度?
//此类用于枚举进程用
class CProcessIterator {
protected:
DWORD* m_pids; // array of procssor IDs
DWORD m_count; // size of array
DWORD m_current; // next array item
public:
CProcessIterator();
~CProcessIterator(); DWORD GetCount() { return m_count; }
DWORD First();
DWORD Next() {
return m_pids && m_current < m_count ? m_pids[m_current++] : 0;
}
};class CProcessModuleIterator {
protected:
HANDLE m_hProcess; // process handle
HMODULE* m_hModules; // array of module handles
DWORD m_count; // size of array
DWORD m_current; // next module handle
public:
CProcessModuleIterator(DWORD pid);
~CProcessModuleIterator();
HANDLE GetProcessHandle() { return m_hProcess; }
DWORD GetCount() { return m_count; }
HMODULE First();
HMODULE Next() {
return m_hProcess && m_current < m_count ? m_hModules[m_current++] : 0;
}
};
在cpp中:
#include "psapi.h" //枚举进程用 CProcessIterator itp;
CString str;
for (DWORD pid=itp.First(); pid; pid=itp.Next())
{
TCHAR modname[_MAX_PATH];
CProcessModuleIterator itm(pid);
HMODULE hModule = itm.First(); // .EXE
if (hModule)
{
GetModuleBaseName(itm.GetProcessHandle(),hModule, modname, _MAX_PATH);
if(strcmp(modname,"a.exe")==0)
{
HANDLE hp=OpenProcess(SYNCHRONIZE|PROCESS_TERMINATE,FALSE,pid);
if (hp)
{
TerminateProcess(hp,0);//结束该进程
}
CloseHandle(hp);
break;
}
}
}
以上功能就是遍历进程表,发现a.exe后,关掉它
找不到#include "psapi.h" //枚举进程用这个文件
请问怎么解决
不过你给的代码不完整,能够给完整的吗,谢谢