hw:=FindWindow(nil,PChar('窗口的標題名稱'));
第二種:通過枚舉所有窗口,查詢特定條件的窗口
function EnumWindowsProc(Wnd: HWND; Param: Integer): Boolean; stdcall;
var
cn : Array[0..255] of char;
tab : HWND;
tId : DWORD;
begin
Result := TRUE;
if GetClassName(wnd, cn, 255) > 0 then
if cn = '#32770' then
begin
if (FindWindowEx(wnd, 0, 'Button','新建窗口') <> 0) and
(FindWindowEx(wnd, 0, 'Button','撥打電話') <> 0) and
(FindWindowEx(wnd, 0, 'Button','發送(Enter)') <> 0) then
begin
tID := GetWindowThreadProcessID(wnd, nil);
Form1.Memo1.Lines.Add('對話框句柄:'+IntToStr(Wnd));
Form1.Memo1.Lines.Add('對話框線程ID:' + IntToSTr(tID));
end;
end;
end;
function EnumWindowsProc(Wnd: HWND; Param: Integer): Boolean; stdcall;
var
cn : Array[0..255] of char;
tab : HWND;
tId : DWORD;
begin
Result := TRUE;
if GetClassName(wnd, cn, 255) > 0 then
if cn = '#32770' then
begin
if (FindWindowEx(wnd, 0, 'Button','新建窗口') <> 0) and
(FindWindowEx(wnd, 0, 'Button','撥打電話') <> 0) and
(FindWindowEx(wnd, 0, 'Button','發送(Enter)') <> 0) then
begin
tID := GetWindowThreadProcessID(wnd, nil);
Form1.Memo1.Lines.Add('對話框句柄:'+IntToStr(Wnd));
Form1.Memo1.Lines.Add('對話框線程ID:' + IntToSTr(tID));
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc,0);
end;
begin
EnumWindows(@EnumWindowsProc,0);
end;
第三種: 查找字窗口內元素的句柄
FindWindowEx(wnd, 0, 'Button','撥打電話')
FindWindowEx(wnd, 0, 'Button','撥打電話')
第四種: 直接使用類似spy++工具軟件查詢