怎样获得当前活动窗口的句柄?(100分)

  • 主题发起人 主题发起人 老赵
  • 开始时间 开始时间

老赵

Unregistered / Unconfirmed
GUEST, unregistred user!
application.handle
 
兩個API
GetActiveWindow -> 取得目前程式的Active Window
GetForegroundWindow -> 取得目前User操作的active winodw(可能是其它進程的窗口)
 
Screen.ActiveForm

Read ActiveForm to learn which form in the application has input focus.
If the application is not currently active, ActiveForm is the form that will have focus when the application becomes active again.
 
我的设想是把所有的窗口(User打开的,比如我的电脑、Word等)
全部隐藏,然后显示我的一个窗口,最后再把全部窗口还原显示。
可是当恢复显示时所有的窗口的前后位置,好像是随机出来的。
原来活动窗口可能会到后面去。
GetForegroundWindow和SetforegroundWindow也不行。
咋回事?
 
SetforegroundWindow肯定有效,除非你参数不对,
不信你试试看记事本。
var
h:THandle;
begin
h := FindWindow('NotePad',nil);
SetForeGroundWindow(h);
 
问题是不知道用户的活动窗口是哪个阿。
要是知道他的是Word肯定就没问题了。
比如说他打开了Word,QQ,我的电脑,Excel.
正在用QQ.
当我把这四个窗口隐藏后,再恢复显示,QQ不一定在上面!
 
GetActiveObject
我瞎说的.^_^
GetForegroundWindow还不行么?
 
老赵,你可不可这样做:
1、先屏蔽掉系统键(比如 ALT+F4等);
2、关闭状态栏;
3、显示你的程序,并使其在最上端,防止别的程序覆盖它;
4、恢复状态栏、系统键。
 
用好象是 getcurrentActivewind...的API 吧,我用过,忘名了,找找吧。
不管什么程序的窗口都行。返回的是其句柄
 
多人接受答案了。
 
后退
顶部