创建自定义 DLL 回调函数.
DllCallbackRegister ( "函数", "返回类型", "参数"
)
函数 | 用户自定义函数的名称. |
返回类型 | 函数的返回类型和调用约定 (见 DllCall). |
参数 | 分号分隔的、将被传递到函数的参数列表. 见备注. |
成功: | 返回供 DllCallbackGetPtr 和 DllCallbackFree 函数使用的 dll 句柄. |
失败: | 返回 0, 发生错误. |
; 创建回调函数
Local $handle
= DllCallbackRegister("_EnumWindowsProc", "int", "hwnd;lparam")
; 调用 EnumWindows(枚举窗口)函数
DllCall("user32.dll", "int", "EnumWindows", "ptr", DllCallbackGetPtr($handle), "lparam", 10)
; 删除回调函数
DllCallbackFree($handle)
; 回调程序
Func _EnumWindowsProc($hWnd, $lParam)
If
WinGetTitle($hWnd)
<> ""
And BitAND(WinGetState($hWnd), 2) Then
Local $res = MsgBox(1,
WinGetTitle($hWnd), "句柄=" & $hWnd & @CRLF & "lParam=" & $lParam & @CRLF & "句柄(类型)=" & VarGetType($hWnd))
If $res = 2 Then Return 0 ; "取消" 按钮被点击, 返回 0 并停止枚举
EndIf
Return 1 ; 返回
1 继续枚举
EndFunc ;==>_EnumWindowsProc
provider with jb51.net (unicode) |