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获取指定窗体句柄,该怎么处理的主要内容,如果未能解决你的问题,请参考以下文章