如何在vba中用FindWindow获得窗口句柄? 您所在的位置:网站首页 vba调用api函数获取单元格在工作表窗口的坐标值 如何在vba中用FindWindow获得窗口句柄?

如何在vba中用FindWindow获得窗口句柄?

2024-07-15 05:16| 来源: 网络整理| 查看: 265

如何在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 实验室设备网 版权所有