请教一个查找窗口的问题(50分)

  • 主题发起人 主题发起人 yanyandt2
  • 开始时间 开始时间
Y

yanyandt2

Unregistered / Unconfirmed
GUEST, unregistred user!
如果一个程序运行两次,也就是有两个同样caption的窗口<br>我现在要依次获得他们的句柄,该如何做?
 
参考:<br>uses<br>&nbsp; Forms, Windows,<br>&nbsp; main in 'main.pas' {MainForm},<br><br>{$R *.RES}<br><br>var<br>&nbsp; PrevInstWnd : Integer;<br><br>begin<br>&nbsp; PrevInstWnd := FindWindow('TApplication','XX程序');<br>&nbsp; if PrevInstWnd&lt;&gt;0 then<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; if IsIconic(PrevInstWnd) then<br>&nbsp; &nbsp; &nbsp; ShowWindow(PrevInstWnd, SW_RESTORE)<br>&nbsp; &nbsp; else<br>&nbsp; &nbsp; &nbsp; SetForeGroundWindow(PrevInstWnd);<br>&nbsp; &nbsp; Exit;<br>&nbsp; &nbsp; end;<br>&nbsp; Application.Initialize;<br>&nbsp; Application.Title := 'XX程序';<br>&nbsp; Application.CreateForm(TMainForm, MainForm);<br>&nbsp; Application.Run;<br>end.<br>
 
这样类似的问题,我前几天回答过一次,不要用FindWindow去查,请看这个帖子,包您满意。<br>http://www.delphibbs.com/delphibbs/dispq.asp?lid=1701704
 
小笨苯,你的方法虽然好,可是我要获得的句柄程序不是我自己的。<br>打个比方吧,我打开两个记事本程序,caption是一样的,我现在<br>要依次获得这两个记事本的句柄,如何做?<br><br>尽量不用enmuwindows
 
哦,是这么回事啊。那好像就没有别的办法了,只能是遍历当前进程了,由于窗口类和标题栏<br>文字都一样,最后只能找到两个不同的ProcessID,也没什么太大的作用了,好像只能这样了<br>再听听别人的看法吧。
 
多人接受答案了。
 
后退
顶部