JSA里的ffi(11)——关闭wps窗口

wils
wils Lv.2 潜力创作者

Lv.2潜力创作者

昨天有朋友问,在JS宏里如何关闭wps窗口

如果用Application.Quit(),只是关掉了表格窗口,还会保留一个wps窗口


function aa()
{
    const {GetAncestor, PostMessageW} = ffi.LoadLibrary('user32', {
        GetAncestor: { returnType: "uint32", parameters: ["uint32", "uint32"]},
        PostMessageW: { returnType: "bool", parameters: ["uint32", "uint32", "uint32", "uint32"]},
    })
    PostMessageW(GetAncestor(Application.Hwnd, 2), 0x0010, 0, 0)
}

试了一下ffi

  • GetAncestor先找到表格的父窗口

  • PostMessageW再向父窗口发送关闭消息

海南省
浏览 1027
3
3
分享
3 +1
5
3 +1
全部评论 5
 
张旭峰
word没有Hwnd该怎么关闭wps窗口?
   浙江省
举报
0
1
wils
wilsLv.2 潜力创作者

Lv.2潜力创作者

试试Application.Windows(1).Hwnd 另外可能需要改用ffi而不是executeexcel4macro
· 海南省
举报
0
0
 
wils
wils Lv.2 潜力创作者

Lv.2潜力创作者

Linux里直接exit好像就行。。。
   海南省
举报
0
0
 
Again
ffi让wps js 上了一个台阶
   安徽省
举报
0
0
 
初心不忘
ffi就是强👍
   江苏省
举报
0
0