×

findwindow

FindWindow怎么用?C语言中的findwindow()函数参数是什么

admin admin 发表于2022-05-20 08:20:31 浏览126 评论0

抢沙发发表评论

FindWindow怎么用


Find Window的函数原型:

FindWindow(
lpClassName, {窗口的类名}
lpWindowName: PChar {窗口的标题}
): HWND; {返回窗口的句柄; 失败返回 0}

C语言测试代码(假如要查系统自带的 放大镜 窗口,前提是已经打开放大镜窗口):

HWND h = FindWindow(NULL, “放大镜“);
if(0 == h)
{
ShowMessage(“can’t find 放大镜“);

}
else
{
ShowMessage(IntToStr(h)); //查找到窗口,并且打印出该窗口的句柄

}

C语言中的findwindow()函数参数是什么


1.函数说明:FindWindow,Win32 API函数。
FindWindow函数返回与指定字符串相匹配的窗口类名或窗口名的最顶层窗口的窗口句柄。这个函数不会查找子窗口。
2.函数原型:
HWND FindWindow( LPCTSTR lpClassName,
LPCTSTR lpWindowName
);3.参数说明:
lpClassName
指向一个以null结尾的、用来指定类名的字符串或一个可以确定类名字符串的原子。如果这个参数是一个原子,那么它必须是一个在调用此函数前已经通过GlobalAddAtom函数创建好的全局原子。这个原子(一个16bit的值),必须被放置在lpClassName的低位字节中,lpClassName的高位字节置零。
lpWindowName
指向一个以null结尾的、用来指定窗口名(即窗口标题)的字符串。如果此参数为NULL,则匹配所有窗口名。
4返回值:
如果函数执行成功,则返回值是拥有指定窗口类名或窗口名的窗口的句柄。
如果函数执行失败,则返回值为 NULL 。可以通过调用GetLastError函数获得更加详细的错误信息。5.使用示例:HWND hWndRcv = ::FindWindow(NULL,“123“);if(hWndRcv != NULL){ AfxMessageBox(“找到123窗口“);}

请教vb中findwindow的用法


请参考:
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“
-findwindow