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

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加载项的能力,希望更多朋友研究,遇到问题了也好找人讨论🤣
创作者俱乐部成员
WPS函数专家