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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi获取指定窗体句柄,该怎么处理相关的知识,希望对你有一定的参考价值。

参考技术A 找某个窗口的某个BUTTON
,例子很简单就是用了
FindWindow,EnumChildWindows两个函数,要找的具体BUTTON在EnumChildWindowsProc回调函数中
Delphi(Pascal)
codefunction
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 窗体函数GetWindowLong-获取指定窗口的信息

Delphi 窗体函数GetWindowLong-获取指定窗口的信息

原型:Long GetWindowLong(HWND hWnd,int nlndex);

参数:

hWnd  目标窗口句柄,间接指向其窗口类。
nlndex  若指定值大于0,返回窗口内存中指定偏移量的32位值。
  也可指定以下值来获得其它数据:
  宏定义           常量   描述
  GWL_EXSTYLE      -20    获取扩展窗口样式
  GWL_HINSTANCE     -6     获取应用实例句柄
  GWL_HWNDPARENT     -8     获取所有者窗口句柄
  GWL_ID           -12      获取窗口ID
  GWL_STYLE        -16    获得窗口样式
  GWL_USERDATA      -21   获取用户设置的32位数据,其值默认为0
  GWL_WNDPROC      -4     获取窗口过程地址或句柄。必须使用CallWindowProc函数调用获取的窗口过程。

  hWnd参数为对话框句柄时,还可用下列值:
  宏定义       常量   描述
  DWL_DLGPROC    4    获取对话框过程地址或句柄。必须使用CallWindowProc函数来调用对话框过程。
  DWL_MSGRESULT  0    获取在对话框过程中某消息的返回值。
  DWL_USER      8    获取应用程序专用的额外信息,例如一个句柄或指针。

 

返回值:如果函数成功,返回值是所需的32位整型值;

 

以上是关于delphi获取指定窗体句柄,该怎么处理的主要内容,如果未能解决你的问题,请参考以下文章

如何获取窗体中组件的句柄

Delphi 窗体函数GetWindowLong-获取指定窗口的信息

delphi 如何获取其它应用程序窗体中的所有控件句柄

C#获取当前窗体句柄及该窗体里的信息

C#获取当前窗体句柄及该窗体里的信息

怎么使用VB的窗体句柄打开窗体