H honestman Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-12 #1 这里的“全文检索”又不能用了,只好花分提问。<br>我已经在A中得到了我需要操作的B的Process ID,我想把该ID对应的B进程窗口激活,让该窗口产生FormActivate或者FormShow事件???<br>这两个程序A和B都是我开发的,可以修改它们的代码,配合行动。
这里的“全文检索”又不能用了,只好花分提问。<br>我已经在A中得到了我需要操作的B的Process ID,我想把该ID对应的B进程窗口激活,让该窗口产生FormActivate或者FormShow事件???<br>这两个程序A和B都是我开发的,可以修改它们的代码,配合行动。
迷 迷糊 Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-12 #2 如果进程B已经运行的话可以找到窗口的句柄,用showwindow(hwbd,sw_normal)或setactivewindow(hwnd)激活窗口,当然发消息也可以。
迷 迷糊 Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-12 #4 var<br> h:hwnd;<br>begin<br> h:=findwindow('tform1','form1');//根据类名和标题名找到窗体句柄<br> if h<>0 then<br> begin<br> showwindow(h,sw_normal);<br> setactivewindow(h);<br> end; <br> else<br> showmessage('window not find');<br>end;
var<br> h:hwnd;<br>begin<br> h:=findwindow('tform1','form1');//根据类名和标题名找到窗体句柄<br> if h<>0 then<br> begin<br> showwindow(h,sw_normal);<br> setactivewindow(h);<br> end; <br> else<br> showmessage('window not find');<br>end;
H honestman Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-12 #5 我现在是已知PID啊!<br>怎么根据PID得到hwnd呢?<br>
Y ysai Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-13 #6 既然两个程序都是你写的,就不必用进程ID来通讯了,应该用RegisterWindowMessage<br>下面的笔记可以做参考<br>http://www.delphibbs.com/keylife/iblog_show.asp?xid=604
既然两个程序都是你写的,就不必用进程ID来通讯了,应该用RegisterWindowMessage<br>下面的笔记可以做参考<br>http://www.delphibbs.com/keylife/iblog_show.asp?xid=604
L lich Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-13 #7 枚举此进程的所有线程:<br>CreateToolhelp32Snapshot <br>Thread32First<br>Thread32Next<br><br>枚举每个线程的窗口,EnumThreadWindows,<br>找到符合主窗口特征的窗口,<br><br>然后 SetForegroundWindow 将其激活,<br>或者发送,你需要的消息
枚举此进程的所有线程:<br>CreateToolhelp32Snapshot <br>Thread32First<br>Thread32Next<br><br>枚举每个线程的窗口,EnumThreadWindows,<br>找到符合主窗口特征的窗口,<br><br>然后 SetForegroundWindow 将其激活,<br>或者发送,你需要的消息
迷 迷糊 Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-15 #8 用EnumThreadWindows枚据窗口,如果有多个窗体的话,最后还不是要用类名或标题名找到相应的窗口?
H honestman Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-23 #9 关键是A进程要操作的B程序进程有若干个,B1、B2、B3……。<br>要根据进程ID来区别,不可以根据窗口资料啊!<br>