如何获得当前活动窗口的caption和name(100分)

J

jonson

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手
请问如何获得当前活动窗口的caption和name
 
先用FindWindow()再~~~~忘了。呵呵,我看看。其实只要有句柄就好办啊。
 
这样非常麻烦
 
var
hCurrentWindow: HWnd;
szText: array[0..254] of char;
begin
hCurrentWindow := GetWindow(Handle, GW_HWNDFIRST);
While hCurrentWindow <> 0do
begin
If GetWindowText(hCurrentWindow, @szText, 255) > 0 then
ListBox1.Items.add(Strpas(@szText));
hCurrentWindow := GetNextWindow(hCurrentWindow, GW_HWNDNEXT);
end;
 
caption好办,就是窗口标题:
var
buf:array[0..1024] of char;
GetWindowText(GetForegroundWindow(),buf,sizeof(buf)-1);
buf就是当前活动窗口的标题,可以是别的进程的
至于name,只有delphi程序、而且是本进程才有意义吧?
如果是指本进程的窗口,那么:
Screen.ActiveForm 和 Screen.ActiveCustomForm 可以得到
 
TO pipi:
请教一个问题:每个控件都有一个名字:Tform1 name=mainform
如何利到其它进程的控件的name 不是classname
谢谢,急用.....
 
procedure TForm1.Button1Click(Sender: TObject);
var hr:HWND;
str:Array[0..255] of char;
begin
hr:=GetActiveWindow;

SendMessage(hr,WM_GETTEXT,256,integer(@str));
Edit1.Text:=str;
end;
 
其他进程的name就很难啦
 
顶部