首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi获取指定窗体句柄,该怎么处理

2012-04-15 
delphi获取指定窗体句柄获取指定标题窗体的句柄应该没什么问题用Findwindow函数就行了,可是问题出来了:如

delphi获取指定窗体句柄
获取指定标题窗体的句柄应该没什么问题用Findwindow函数就行了,可是问题出来了:如果有多个类名及标题相同的窗体,如何才能获取他们各自的句柄呢?

[解决办法]
FindwindowEx
[解决办法]
找某个窗口的某个BUTTON ,例子很简单就是用了
FindWindow,EnumChildWindows两个函数,要找的具体BUTTON在EnumChildWindowsProc回调函数中

Delphi(Pascal) code
function EnumChildWindowsProc(hwd: Hwnd): Boolean; stdcall;begin  Result := true;  GetClassName(hwd, buffer, 256);  if String(Buffer) <> 'Button' then Exit;  getwindowtext(hwd, buffer, 256);  if String(Buffer) <> '验证全部' then Exit;  h := hwd;end;procedure TForm1.Timer1Timer(Sender: TObject);var  hwnd1,hwnd2,hwnd3,hwnd4:   DWORD;begin  h := 0;  hwnd1 := FindWindow(nil, '代理猎手');  if hwnd1 <> 0 then  begin    if EnumChildWindows(hwnd1, @EnumChildWindowsProc, 0) then    if h = 0 then exit;    SendMessage(h, WM_LBUTTONDOWN , 0, 0);    SendMessage(h,WM_LBUTTONUp, 0, 0);  end;end;
[解决办法]
Delphi(Pascal) code
function EnumWindowCallBack(HWND:THandle;lparam:longint):longint;stdcall;var  Wnd_TEXT:string;begin  Setlength(Wnd_TEXT,255);  GetWindowText(HWND,PChar(Wnd_TEXT),255);//Wnd_TEXT中保存窗口标题  Result:=1;end;procedure Button1Click(Sender: TObject);begin  EnumWindows(@EnumWindowCallBack,0);end; 

热点排行