程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

EXCEL VBA"调用"微信发消息的补充

balukai 2025-05-30 12:42:54 文章精选 6 ℃

有条友反馈:ws.SendKeys "^%w" 此语句模拟发送CTRL+ALT+W ,微信快捷键有时呼不出微信的聊天窗口。现改用API获取窗口句柄,再用ShowWindow控制窗口还原、或最大化。

先声明要调用的API函数

Public Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpclassname As String, ByVal lpwindowname As String) As Long
Public Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

简单解释:FindWindow 给函数的新名字,FindWindowA 是函数在库文件user32里的真实名字;lpclassname As String, lpwindowname As String 函数的两个参数,第1个是窗口类名,第2个窗口标题名,都是字符型。最后的As long是函数返回值 的类型。作用是查找指定窗口,返回“句柄”(句柄就是一串数字)。ShowWindow 作用控制窗口还原、最大化或是最小化;两个参数,第1个就是句柄,第2 个动作,都是数字型。

将ws.SendKeys "^%w"语句用下面语句替换掉

hwnd = FindWindow("WeChatMainWndForPC", "微信")
ShowWindow hwnd, 1

FindWindow("WeChatMainWndForPC", "微信")获得微信窗口的句柄,WeChatMainWndForPC为微信的类名,借助按键精灵的“抓抓”工具取得。

ShowWindow hwnd, 1 将微信窗口“还原”,1表示还原,2表示最小化,3表示最大化,0表示隐藏;4 表示 show 好像与0相对应,实际中与1的区别没测试出来。

ShowWindow hwnd, 1 可以执行多次。

最近发表
标签列表