散分了,怎么样通过应用程序句柄获得这个程序的主窗口句柄 再把这个问题解释一下举例说吧A程序在运行时启动了B程序,并且得到了B程序的应用程序句柄,但是我想在A程序中获得B程序主窗口的句柄,以便在A程序中对B程序的主窗口进行控制。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 GetWindow(Application.Handle, GW_HWNDPREV) 提一点自己的看法。在一个程序中取得另一个程序的主窗口句柄,我理解的意思是这样的,比如我现在知道"记事本"的进程句柄而要得到"记事本"这个主窗口.不知楼主是不是这样一个意思。如果是,没有直接的方法。一个进程和窗口本身是一对多的关系。反过来却是可以的。呵呵。但我们可以通过变通的方法来取得。先取得进程ID,再通过对现有窗口的枚举(EnumWindows),在回调中通过GetWindowThreadProcessId取得每个窗口的ID,且判断这个窗口的父是不是桌面。如果满足这两个条件,可以认为是主窗口这种方法也有区限性,比如。delphi程序的主窗口一般应该是application当然,我还没试最简单的方法是FindWindow,但这样做死了不爽如果两种程序都是自己写,那可以通过自定义消息来处理。 TO:black_fox(black_fox) 其实还是那个问题,你告诉我控制IE的方法,呵呵,老调重弹。我用shellexecute启动一个IE实例窗口以后就要确定这个窗口的句柄以便对这个窗口进行控制。按你先前告诉我的方法的话,如果在此之前有IE窗口打开,那么这个程序就会控制别的IE窗口而不是程序打开的那个,我现在就是想解决这个问题。 TO xyk_king(挥霍寂寞) :我不知道你是要写怎样的一个东西。呵呵。按照你这个思想,我觉得可以用CreateProcess来启动IE实例.通过enumthreadwindows来对主线程的窗口进行枚举。 非常同意 black_fox(black_fox) 的思路!!! GetWindow(Application.Handle, GW_HWNDPREV)Delphi的Application的Handle与MainForm的Handle是不同的。而且按其内部机制用上述语句应可得到MainForm的Handle BDE访问DB2表时出现SQL0206N错误提示 文件删除 打开串口(createfile) 大家有没有编写或保存ico的程序源码呢?小弟找了很久,好象delphi没有这方面的例子。在线等待。 请问,这个线程那里有错???? 如何复制一张表 刚才的问题,为何循环出来的是一个值? delphi5,delphi6,delphi7有什么差别,哪个最好,哪个最经典? 我是阿水,有没有认识我的,帮帮忙了 谁能帮我? 依次提出函数输出的结果。 难题应该算
如果是,没有直接的方法。一个进程和窗口本身是一对多的关系。反过来却是可以的。呵呵。
但我们可以通过变通的方法来取得。先取得进程ID,再通过对现有窗口的枚举(EnumWindows),在回调中通过GetWindowThreadProcessId取得每个窗口的ID,且判断这个窗口的父是不是桌面。如果满足这两个条件,可以认为是主窗口这种方法也有区限性,比如。delphi程序的主窗口一般应该是application
当然,我还没试最简单的方法是FindWindow,但这样做死了不爽如果两种程序都是自己写,那可以通过自定义消息来处理。
其实还是那个问题,你告诉我控制IE的方法,呵呵,老调重弹。我用shellexecute启动一个IE实例窗口以后就要确定这个窗口的句柄以便对这个窗口进行控制。按你先前告诉我的方法的话,如果在此之前有IE窗口打开,那么这个程序就会控制别的IE窗口而不是程序打开的那个,我现在就是想解决这个问题。
TO xyk_king(挥霍寂寞) :我不知道你是要写怎样的一个东西。呵呵。
按照你这个思想,我觉得可以用CreateProcess来启动IE实例.通过enumthreadwindows来对主线程的窗口进行枚举。
Delphi的Application的Handle与MainForm的Handle是不同的。而且按其内部机制用上述语句应可得到MainForm的Handle