救人如救火!!!!!!!!!!!!(30分)

  • 主题发起人 主题发起人 我爱delphi
  • 开始时间 开始时间

我爱delphi

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Timer1Timer(Sender: TObject);
var
; TheWindow: HWND; ; ; ; ; ; ; ; ; ;// this will hold the active window handle
; WindowText: array[0..255] of char; // this will hold the text of that window
begin
; TheWindow:=GetActiveWindow;
; GetWindowText(TheWindow,WindowText,255);
; Label1.Caption:='Active Window Text: '+string(WindowText);
end;
这段代码为何只能获取拥有这段代码的窗体的标题呢?
 
没人回答Up一下可否.
 
该段代码可以获得同一个工程文件中的当前活动窗口的text
帮助中有,GetActiveWindow作用于同一个线程
 
如果在钩子中使用,就能正常工作,具体的代码请看
http://www.delphibbs.com/delphibbs/dispq.asp?lid=531713
 
楼上的两位老兄能否给出具体实现的代码呢?
分我还可以在加.[8D][8D][8D][8D][8D]
 
请更改此句:
; TheWindow:=GetActiveWindow;
;为:
; ; GetTopWindows(TheWindow) ;
 
>>具体实现代码
; 请看一看我在上面提到的帖子 ID=534805
再加上一个按钮、放置一个Memo就可以工作了:
procedure TMonitorForm.SpeedButton1Click(Sender: TObject);
begin
; if SpeedButton1.Tag=0 then
; begin
; ; if g_hLogHook=0 then
; ; begin
; ; ; g_hLogHook:=SetWindowsHookEx(WH_JOURNALRECORD,TFNHookProc(@JournalLogProc),HInstance,0); ;//安装日志钩子
; ; ; SpeedButton1.Caption:='结束监视';
; ; ; SpeedButton1.Tag:=1;
; ; end;
; end
; else begin
; ; if g_hLogHook<>0 then
; ; begin
; ; ; UnhookWindowsHookEx(g_hLogHook);
; ; ; g_hLogHook:=0;
; ; ; SpeedButton1.Caption:='开始监视';
; ; ; SpeedButton1.Tag:=0;
; ; end; //卸载日志钩子
; end;
end;

; 我的代码功能很多,你可以把用不到的功能砍掉。
 
换成该句就行了
; TheWindow:=GetForegroundWindow ;
 
Brave 谢谢你啊.
 
不客气,结束帖子吧
[:D][:D]
 
后退
顶部