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

joist21 2003-05-06 07:56:29
我想检测一个程序是否在运行,我仅仅知道这个程序的文件名和路径,有办法做到吗?
...全文
130 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

1,222

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧