如何知道一个程序是否在运行中?

liaoxiaoping 2002-12-20 11:45:51
如何知道一个程序是否在运行中?
...全文
30 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
唏嘘的猪肉贩 2003-01-01
  • 打赏
  • 举报
回复
不赞成FindWindow的方式,因为可能出问题,因为窗口Title不能唯一表识一个应用程序。
比如:这个应用程序的标题是“aaa”,你如果新建一个文件夹并命名为"aaa",并打开这个文件夹,用FindWindow这个方式就会认为这个程序已经运行。

如果那个程序是你做的(比如你只是想防止用户二次运行程序),建议用创建互斥量的方式,见api函数CreateMutex
如果这个程序不是你做的,我没有好办法,建议找到其可执行文件并尝试重命名,如果失败则证明已执行,否则认为没有执行,将其反重命名。
我想一定有监测进程这样的api函数可以用,但是我不会,希望有高人指点。
唏嘘的猪肉贩 2003-01-01
  • 打赏
  • 举报
回复
不赞成FindWindow的方式,因为可能出问题,因为窗口Title不能唯一表识一个应用程序。
比如:这个应用程序的标题是“aaa”,你如果新建一个文件夹,并打开这个文件夹,用FindWindow这个方式就会认为这个程序已经运行。

如果那个程序是你做的(比如你只是想防止用户二次运行程序),建议用创建互斥量的方式,见api函数CreateMutex
fishmans 2003-01-01
  • 打赏
  • 举报
回复
那要是一个没窗体的程序,如何知道啊??
shxhark 2002-12-31
  • 打赏
  • 举报
回复
你是用什么软件开发的?VB?DELPHI?
VB中有一个函数可以判断。
以提供DELPHI中示例以供参考:
var
KK:hWnd;
begin
KK:=findwindow('TFrm_NoteBook','');
if KK<>0 then
begin
Application.MessageBox('中望个人助理程序已经运行!','提示!',48);
SetForegroundWindow(KK);
Halt;
end;
....

findwindow是WINDOWS中一API函数;“TFrm_NoteBook”是窗体的类名。
cybxm 2002-12-31
  • 打赏
  • 举报
回复
api
leileisoft 2002-12-28
  • 打赏
  • 举报
回复
记得有相关的API,去查吧.
见招拆招 2002-12-26
  • 打赏
  • 举报
回复
看看能不能删掉可执行文件,呵呵。
felics 2002-12-20
  • 打赏
  • 举报
回复
用FindWindow()根據窗口類型或窗口標題查找。

241

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 其他
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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