如何找到应用程序运行后的句柄。

jl820712 2006-07-07 10:22:33
我有2个程序。。A,B。
我需要用B去关闭A。
除了通过枚举所有窗口,判断窗口的标题的方法,还有没有其他方法了?因为标题可以重复,即,可能找到多个标题一样的窗口,那又应该如何去区分哪个才是程序A呢?

我在程序A启动时,创建了一个互斥量。(因为A是只能运行一个实例的)能不能通过这个互斥量来得到A的句柄。

const
CON_APP_TITLE = 'TestA';
begin
MuteHandle := Windows.CreateMutex(nil, True, PAnsiChar(CON_APP_TITLE));
if (MuteHandle <= 0) then
Exit;
........
我原本在这里写了个通过枚举窗口的标题,来找程序句柄。然后将程序前置的函数。
........
Application.Initialize;
Application.Title:= '软件A';
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.
...全文
184 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jl820712 2006-07-10
  • 打赏
  • 举报
回复
楼上能说的详细点吗?
keyz 2006-07-07
  • 打赏
  • 举报
回复
可以注册一个消息 registerwindowsmessage
其他程序广播这个消息,看是否存在。

1,183

社区成员

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

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