如何在vba中用FindWindow获得窗口句柄? | 您所在的位置:网站首页 › vba调用api函数获取单元格在工作表窗口的坐标值 › 如何在vba中用FindWindow获得窗口句柄? |
如何在vba中用FindWindow获得窗口句柄?
2018年2月6日
作者:水星Excel
14,428 次浏览
暂无评论
api函数FindWindow可以根据指定的类名和窗口标题名称获得顶层窗口的句柄。 这个函数并不会查找子窗口,而且它也不区分大小写。 FindWindow函数的C++语法如下: HWND WINAPI FindWindow( _In_opt_ LPCTSTR lpClassName, _In_opt_ LPCTSTR lpWindowName );FindWindow函数的VB声明如下: Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long其中参数lpClassName为指定的类名,如果为空,则查找窗口的标题满足lpWindowName参数的窗口。 如果参数lpClassName和lpWindowName都为空的话,FindWindow函数返回的是其中一个顶层窗口的句柄。 比如excel应用程序的类名为”XLMAIN”,则可以使用如下的代码获取当前excel应用程序的句柄: Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Sub QQ1722187970() Dim hwnd As Long '用内置的属性获得excel应用程序句柄 hwnd = Excel.Application.hwnd '用 FindWindow获得excel应用程序句柄 i = FindWindow("XLMAIN", vbNullString) '对比两个句柄值 Debug.Print hwnd, i End Sub
其它相关文章推荐:如何用api获取QQ好友聊天窗口的句柄?如何用api关闭QQ好友的聊天窗口?如何用api函数根据顶层窗口标题名称模糊查询窗口句柄?如何用api在excel与word应用程序之间切换?如何在vba中用GetClassName获取窗口的类名?如何在vba中用api回调函数EnumChildProc遍历某个窗口的所有子窗口? 分类 : API , VBA 标签 : FindWindow , XLMAIN , 句柄 , 类名 声明: 本站文章均属原创,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则视为侵权。如果想要每天都收到本站的技术文章推送,可以微信搜索公众号:水星Excel或者Excel_Office关注。其它事宜请加QQ:1722187970 或微信号:xycgenius 联系。 |
CopyRight 2018-2019 实验室设备网 版权所有 |