有什么好的办法可以检测一个程序是否在运行吗?

joist21 2003-05-06 07:56:29
我想检测一个程序是否在运行,我仅仅知道这个程序的文件名和路径,有办法做到吗?
...全文
25 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
nightfallrove 2003-05-09
用FindWindow(NULL,TITLE)也可以,
回复
gyj_china 2003-05-08
HWND Handle = FindWindow(ClassName,Title);
最好是按类名查找,类名可以通过重载
TCreateParam指定。
回复
gfh_79_0 2003-05-07
这个我没试过是否所有都有效,
我试的都有效。

原理就是把进程都枚举一遍,然后用以知程序名和枚举程序名比较,看有没有一样的。
所以,如果在进程中,就应该没问题。
回复
joist21 2003-05-06
To:: gfh_79_0(ghf)
你所说的根据程序名辨别的办法,是不是针对所有程序都有效果呀?
回复
gfh_79_0 2003-05-06
知道窗口的 title
HWND Handle = FindWindow(NULL,"title");
返回为不为0 ,就是运行了。

知道程序名,枚举进程名称
#include <tlhelp32.h >
void *hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
PROCESSENTRY32 ppe;
ppe.dwSize = sizeof(PROCESSENTRY32);
Process32First(hSnapshot, &ppe);
do
{
if (strcmp(ppe.szExeFile, "calc.exe") == 0)//在这里判断程序名
{

//你要办的事
}
}
while (Process32Next(hSnapshot, &ppe));
CloseHandle(hSnapshot);
回复
kataboy 2003-05-06
你可以用FindWidow,
回复
joist21 2003-05-06
我是指在自己的程序里检测呀,呵呵
回复
spaceman 2003-05-06
Ctrl+Alt+Delete
回复
相关推荐
发帖
Windows SDK/API
创建于2007-08-02

1206

社区成员

C++ Builder Windows SDK/API
申请成为版主
帖子事件
创建了帖子
2003-05-06 07:56
社区公告
暂无公告