WinRestore,% hwnd([1])
我在许多编程语言中发现了HWND的使用。在Google上搜索后,它将被处理。我没有得到更多信息。程序员如何知道要投入的价值,例如。
Const LB_GETTEXTLEN = &H18A
Const LB_GETTEXT = &H189
Const LB_GETCOUNT = &H18B
& h18a他知道如何使用它?
这是示例程序
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const LB_GETTEXTLEN = &H18A
Const LB_GETTEXT = &H189
Const LB_GETCOUNT = &H18B
Private Function GetListItems(ByVal hList As Long) As Variant
Dim i As Long, nCount As Long, lItemLength As Long
Dim sItem() As String
nCount = SendMessage(hList, LB_GETCOUNT, 0, ByVal 0&)
For i = 0 To nCount - 1
lItemLength = SendMessage(hList, LB_GETTEXTLEN, i, ByVal 0&)
ReDim Preserve sItem(i)
sItem(i) = String(lItemLength, 0)
Call SendMessage(hList, LB_GETTEXT, i, ByVal sItem(i))
Next i
GetListItems = sItem
End Function
在所有不同语言中都有许多这样的示例,但是概念是相同的。所以我想学习它。这是什么意思以及如何使用它。
AHK的另一个例子 GUI,2: hwndhwnd hwnd(2,hwnd)
这些都是所有窗口消息,您可以通过搜索搜索MSDN文档的信息。请参阅下面的链接:
-
LB_GETTEXTLEN
-
LB_GETTEXT
-
LB_GETCOUNT
您可以通过检查本机列表框控制的文档来找到它们和其他相关消息。
关于数字是文档中(通常)提到的十六进制数字。但是,由于这些不是这些,因此您必须搜索它们并查看其他网站/论坛,或通过在C或C 中尝试它们来自行找到它们的值。
在VB中,十六进制的数字是通过使用&H
进行准备数字的,而在C,C ,C#或类似的情况下,它们用0x
进行了准备。
在表单编辑器中,每个窗口/控件具有hwnd
属性。对于未由您的表单软件包创建的Windows,您使用API调用FindWindow
(最简单但不可靠)或EnumWindows
。还有GetForegroundWindow
和GetDesktopWindow
。
要找出常数的值,您将下载C头文件作为Windows SDK的一部分https://developer.microsoft.com/en-en-us/windows/downolloads/windows-10-sdk。它还具有所有这些API调用的文档。这是在线文档列出所有Windows的功能https://msdn.microsoft.com/en-us/library/windows/desktop/ms633505(v = vs.85).aspx。