怎么判断两个窗口是同一个程序的 ( 积分: 100 )

  • 主题发起人 主题发起人 xuhao1
  • 开始时间 开始时间
X

xuhao1

Unregistered / Unconfirmed
GUEST, unregistred user!
例如:一个工程有两个窗体 Form1 Form2,Form1是主窗体,怎样通过Form2的句柄得到Form1的句柄
 
例如:一个工程有两个窗体 Form1 Form2,Form1是主窗体,怎样通过Form2的句柄得到Form1的句柄
 
GetWindowThreadProcessId
 
在同一工程中,直接将form1单元包含到form2中,然后直接取form1.handle就行了。<br>也可以取application.handle。
 
不是在同一工程,取其它程序
 
FindWindow()或 FindWindowEx()
 
方法是<br>如果已知Form2的句柄<br>那么就可以获得该程序进程句柄<br>然后再由进程句柄得到主窗口的句柄(即form1的句柄)<br><br>别一种方法是枚举一个进程中的所有符合窗口类型与窗口名称的窗口。<br>
 
abookdog 的方法1是我想要的,请贴出源码 ,具体用哪个api函数<br><br>不要 FindWindow 的方法。
 
GetWindowThreadProcessId不行?我的好像可以~不過我的是測試程序本身的。
 
楼上的好像也不行,程序可能有很多窗口,不止两个,而且都是根据情况动态创建
 
用INI文件注释一下就行啦!同一个程序的就用同一个标记的呀!再开一个又不同的呀
 
其它的应用程序,不是自己开发的,怎么注释
 
运行你的程序的时候查看一下你的程序有没有执行。
 
Form1.Handle 的值每次运行是变化的,<br>还做一个标记比较好
 
多人接受答案了。
 
to 爱元元的哥哥, <br><br>近况如何啊?还记得我吗?呵呵!<br><br>GetWindowThreadProcessId 应该得到的是程序的主窗口,<br>delphi程序的主窗口是隐含的,大小为(0,0),而非是Form1窗口<br><br>
 
后退
顶部