求助大佬,能不能实现一个窗口不被关闭或者退出的动作

动作需求 · 5068 次浏览
喝酒吃肉爽 创建于 2024-10-27 10:06

因为平时工作会有很多的项目对接,但是每一个项目里面对接的人群都不一样,会打开很多虚拟桌面在微信里把不同的人的聊天窗口独立出来,分布到不同的项目的虚拟桌面,但是和一个窗口的人对话完之后,经常习惯性的就按了一下 esc 键,或者 Alt+F,把窗口关闭掉了。

然后每次又得到对应的窗口,把微信聊天窗口独立出来。

求助大佬可以实现一个动作,把当前指定锁定,不允许 esc 退出或者 Alt+F4关闭。

喝酒吃肉爽 最后更新于 2024/10/28

EC10010 2024-10-28 11:25 :

设置ESC键微信白名单扩展热键或快捷键,这样ESC键的功能就被占用了。Ctrl+F能关闭吗?

喝酒吃肉爽 回复 EC10010 2024-10-28 12:57 :

感谢大神指正。不是Crtl+F,是Alt+F4

喝酒吃肉爽 回复 EC10010 2024-10-28 17:22 :

这个方案可行倒是可行

主要是这样一操作的话,微信主窗口也不能用 esc 退出了

我想独立窗口不能用 esc 退出,主窗口还可以用 esc 退出

EC10010 回复 喝酒吃肉爽 2024-10-28 17:45 :

在动作里判断是否独立窗口,如果不是,就关闭窗口。

回复内容
叽尼抬煤 2024-10-27 15:23
#1

用autohotkey可以做到,给你提供下思路: 

写个ahk脚本,针对微信程序写一个esc热键(ctrl+F同理),同时设置一个列表变量(黑名单)存放需要阻止关闭的窗口id,

热键触发后获取当前窗口的id,如果该id位于列表变量(即黑名单)里,则啥也不干,否则 重新发送esc键

然后就是如何将指定窗口添加到黑名单里,两个方法:

1 依然使用autohotkey 热键来添加, 触发后获取当前窗口id,然后添加到黑名单变量

2 ,改用quicker动作来添加,原理是quicker触发动作后将窗口id通过消息的形式发送到autohotkey, 同时auotohotkey脚本里设置一个监听消息的函数,当收到消息后将消息中的窗口id添加到黑名单变量里 

方法2有点复杂,但是可行的, 推荐方法1

叽尼抬煤 最后更新于 2024-10-27 15:24
之乎者也吧 回复 叽尼抬煤 2024-10-28 16:22 :

quicker也可以直接实现的吧,直接把esc变成快捷键,按键触发动作,获取前台窗口程序名什么的,只要是什么什么就让esc无效,或者让按键生效

叽尼抬煤 回复 之乎者也吧 2024-10-28 17:31 :

我之前试的是"热键联动",设置ESC触发之后,它能触发quicker动作,但它不能阻止白名单程序触发esc; 试了你说的"动作快捷键",它可以阻止白名单程序触发esc, 感谢! 不过我在设置alt+F4作为触发键时,quicker提示"注册快捷键失败:Alt+F4", 我想可能是权限不够,于是又以管理员身份启动quicker,结果又提示"开启APP网络服务端口失败。通常每个套接字地址(协议/网络地址/端口)只允许使用一次。" ,你试试能不能注册alt+F4

之乎者也吧 回复 叽尼抬煤 2024-10-29 13:18 :

alt是功能键,应该是没法用任何方法注册为快捷键的

叽尼抬煤 回复 之乎者也吧 2024-10-29 13:55 :

autohotkey可以注册alt+F4,甚至win键组合键都能注册的😀

叽尼抬煤 2024-10-29 21:09
#2

写好了,试试看,成功或者失败都给个反馈 https://getquicker.net/Sharedaction?code=3584419d-0eda-4ef3-4ff9-08dcf7c36419

喝酒吃肉爽 回复 叽尼抬煤 2024-10-29 21:37 :

非常感谢,我刚才已经试过了这个autohotkey,以下总结了几个问题:


1.当把“窗口 a”添加到黑名单,这个时候用鼠标移动到窗口右上角的关闭按钮进行点击关闭。查看黑名单的时候,显示“窗口 a”----(无效)


这时候重新把重口 a 独立出来,查看黑名单会显示有两个窗口 a,其中老的那个是“无效”。这个应该是当窗口 a 关闭,重新打开以后,句柄就发生了变化。


其实就算重新加入黑名单也无妨,所以可以直接设置无效的句柄的窗口直接剔除黑名单


2.回来黑名单里面的窗口对其进行关闭的时候,会显示一秒的倒数计时,可否将这个倒数计时取消?

喝酒吃肉爽 回复 喝酒吃肉爽 2024-10-29 21:47 :

3.可以将 QQ 的窗口也加入其中吗?

叽尼抬煤 回复 喝酒吃肉爽 2024-10-29 21:53 :

1.黑名单是针对窗口句柄的,这是不会重复的,如果针对窗口标题,那么聊天窗口打开的其它窗口(比如聊天记录窗口)也会被阻止关闭,那样就得通过点击X按钮来关闭了,这就不方便了; 所以只针对特定窗口的句柄; 无效的句柄确实是因为关闭窗口再次打开后句柄id变了, 移除不移除失效的句柄都不影响,所以没移除

2.  第50行改成 cnt:=0

叽尼抬煤 回复 喝酒吃肉爽 2024-10-29 22:00 :

3 可以,把脚本里 example.exe 改成 qq.exe即可, 脚本使用的快捷键ctrl+B和ctrl+T可能会和qq冲突,

你可以改成其它的,其中^表示ctrl,+表示shift,!表示alt,所以^+!B就表示ctrl+shift+alt+B;

修饰键的顺序无所谓,所以也可以写成!+^B

喝酒吃肉爽 回复 叽尼抬煤 2024-10-29 22:03 :

cnt:=0,直接没办法用 esc 退出,或者用 alt 加 f4关闭了

还是没办法秒关呀


cnt:=1,e sc 退出和 alt 加 f4关闭倒数计时时间变成了0.5秒


叽尼抬煤 回复 喝酒吃肉爽 2024-10-29 22:21 :

更新了,你再试一下



喝酒吃肉爽 回复 叽尼抬煤 2024-10-29 22:31 :

现在BUG更多了=.=

1.按 alt 加 f4都直接没法关闭窗口了

2.在主窗口使用 esc 键,会把聊天窗口进行切换,多按几次 esc,多往下切换几个之后,才可以进行 esc 退出

叽尼抬煤 回复 喝酒吃肉爽 2024-10-29 22:39 :

我这测试没问题的,你是不是没把之前的脚本退出? 你自己改键了吗?

叽尼抬煤 最后更新于 2024-10-29 22:40
喝酒吃肉爽 回复 叽尼抬煤 2024-10-30 08:33 :

退出了的,早上过来在公司电脑上运行也是这个样子

叽尼抬煤 回复 喝酒吃肉爽 2024-10-30 08:50 :

你试试重启电脑,关闭无关的程序,只启动微信和autohotkey,看看还有没有问题; 如果还有,我给你远程看看,你下载个todesk,发我链接

喝酒吃肉爽 回复 叽尼抬煤 2024-11-01 21:25 :

现在已经可以了,两台电脑都可以了

谢谢大神

叽尼抬煤 回复 喝酒吃肉爽 2024-11-01 22:08 :

找到之前运行出问题的原因了吗



喝酒吃肉爽 回复 叽尼抬煤 2024-11-01 23:44 :

也不知道是什么原因,反正现在没问题了

回复主贴