FindWindow函数用于查找窗体
函数原型
HWND FindWindow(
LPCTSTR lpClassName, // pointer to class name
LPCTSTR lpWindowName // pointer to window name
);
lpWindowName是要查找窗体的标题,即这里的Calculator。
如果找到窗体,函数返回该窗体的句柄;
如果找不到,函数返回空值或者零
在VB里可以这样声明
Public Declare Function FindWindow Lib "USER32.DLL" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
成功,返回窗体句柄;
失败,返回0
注意,在VB里""要用vbNullString表示
上面的声明如果写成一行,请去掉第一行后面的“_”。
VB声明 | |
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long | |
说明 | |
寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序的标题) | |
返回值 | |
Long,找到窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError | |
参数表 | |
参数 | 类型及说明 |
lpClassName | String,指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类 |
lpWindowName | String,指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收任何窗口标题 |
注解 | |
很少要求同时按类与窗口名搜索。为向自己不准备参数传递一个零,最简便的办法是传递vbNullString常数 | |
示例 | |
Dim hw&, cnt& Dim rttitle As String * 256 hw& = FindWindow("ThunderRT5Main", vbNullString) ' ThunderRTMain under VB4 cnt = GetWindowText(hw&, rttitle, 255) MsgBox Left$(rttitle, cnt), 0, "RTMain title" |
评论