JS宏及加载项控制任意窗口关闭、最大最小化、移动

wils
wils

创作者俱乐部成员

最近有朋友尝试,在加载项里控制窗口

通过ExecuteExcel4Macro方法似乎可行


先要获取窗口的句柄:

🔔

const a = ExecuteExcel4Macro(`CALL("User32", "FindWindowA", "JJC", 0, "xxx")`)

也可以通过GetActiveWindow等方法获取


然后用PostMessageA发送窗口消息:

🔔

ExecuteExcel4Macro(`CALL("User32", "PostMessageA", "JJJJJ", ${a}, 16, 0, 0)`)

其中${a}是窗口句柄,16是WM_CLOSE,关闭窗口的消息

如果需要最小化最大化移动等方法,可以发送WM_SYSCOMMAND消息,并带上参数

https://learn.microsoft.com/en-us/windows/win32/menurc/wm-syscommand

比如移动:

🔔

ExecuteExcel4Macro(`CALL("User32", "PostMessageA", "JJJJJ", ${a}, 274, 61456, 0)`)


昨晚又有朋友问,对于加载项里ShowDialog打开的无边框窗口,如何移动

试了一下,无边框窗口似乎不理会WM_SYSCOMMAND里的移动消息

但是,带参数的WM_MOVE消息可以正常移动它,SetWindowPos方法应该也可以

所以,也许只能自己实现一个跟随鼠标移动窗口的方法了


从最近一段时间对ExecuteExcel4Macro的使用来看,这个方法极大的扩展了JS宏和wpsjs加载项的能力,希望更多朋友研究,遇到问题了也好找人讨论🤣

广东省
浏览 190
2
5
分享
5 +1
3
2 +1
全部评论 3
 
王禹成
王禹成

创作者俱乐部成员

点赞但是不会这个
· 浙江省
回复
 
初心不忘
很有质量的帖子
· 江苏省
回复
 
wps新路
wps新路

WPS函数专家

点赞
· 重庆
回复