taojy123 / KeymouseGo

类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input
http://taojy123.github.io/KeymouseGo
GNU General Public License v2.0
6.9k stars 1.01k forks source link

支持后台执行吗 #171

Open kirbystudy opened 1 year ago

Monomux commented 1 year ago

可以后台执行,如果是在窗口模式下运行,可以按热键执行(无论窗口是否获得焦点);如果是在命令行模式下执行,可以利用计划管理器。

kirbystudy commented 1 year ago

热键点了没有反应

ZutJoe commented 1 year ago

热键点了没有反应

如果是笔记本电脑的话需要按fnf*,因为你的f*可能没切换到

kirbystudy commented 1 year ago

还有就是录制 只有鼠标录制了,键盘里的按键没录上

ZutJoe commented 1 year ago

您可以把您使用的版本,还有简化后的操作和脚本文件发一下吗

kirbystudy commented 1 year ago

热键点了没有反应

如果是笔记本电脑的话需要按fnf*,因为你的f*可能没切换到

这个按了fn+F10也没反应

kirbystudy commented 1 year ago

热键点了没有反应

如果是笔记本电脑的话需要按fnf*,因为你的f*可能没切换到

这个按了fn+F10也没反应

我是win11台式电脑的

ZutJoe commented 1 year ago

我是win11台式电脑的

软件的版本,你要进行的操作(简化一下),录制的脚本,发一下可以嘛

kirbystudy commented 1 year ago

软件的版本是KeymouseGo_v5.1-win64 录制和停止录制的快捷键按了没有反应 image

只能手动的点操作录制,录制的脚本 只有鼠标录制了,键盘的按键没有录制 就是以上的问题 image

ZutJoe commented 1 year ago

我这边测试了一下,我使用该版本是没有您类似的情况的(所有情况),具体的问题目前不清楚,可能是由于win11的原因,也可能是软件本身,不好意思

Monomux commented 1 year ago

我在win11虚拟机上测试了一下,执行脚本的热键有时不灵,需要按好几次才能启动执行,其余热键触发正常,程序也可以捕获鼠标和键盘按键。而在win10环境上,执行脚本的热键不会出现这种情况。

这有可能是PyWinHook的问题,当前该库最新的版本是在2020年发布的,而win11是在之后出的,可能存在兼容性问题。

ZutJoe commented 1 year ago

我在想win要不要也要换个库,我看见这个库好像可以win和mac都行 ,而且好像是驱动层模拟的,但是不清楚会不会兼容win11 https://github.com/boppreh/keyboard https://github.com/boppreh/mouse

Monomux commented 1 year ago

我换用了原来写的pynput+pyautogui实现 图片

打包后发现没有执行脚本的热键有时不灵的问题,热键响应正常。

想了一下,还是PyWinHook的问题,不是兼容性上的,而是这个库的监听是在主线程上运行的: 图片

换用pynput后,监听是在其它线程中运行的: 图片

主线程除了处理UI逻辑外还要负责监听,又没有异步io支持,所以有时会出现按键不灵的情况。与 #129 中的情况类似:

Originally posted by **zhsunlight** June 18, 2022 > 另一个期待的特性是在脚本执行时,想停就停,想执行就执行(这个已经实现),现在是想停,很多时候并不是马上就停,等真正停的时候,键鼠还是会执行相应的动作。所以有时当我找到脚本问题后,马上按停止键,然后去修改脚本,过一会,脚本真的要停了,接着一通胡乱的键鼠操作下来,代码就被弄得非常乱,好在我的编辑器还算给力,按几次ctrl+z就恢复原状。不知道 python3.4之后提供的异步IO有没有可能改善这个问题。(参考资料:[https://zhuanlan.zhihu.com/p/95685688)](https://zhuanlan.zhihu.com/p/95685688%EF%BC%89) 要不就都换成`pynput`监听吧,这样修改的工作量也少(几乎没有),如果还有问题可以换成上面的库([keyboard](https://github.com/boppreh/keyboard),[mouse](https://github.com/boppreh/mouse))
ZutJoe commented 1 year ago

要不就都换成pynput监听吧,这样修改的工作量也少(几乎没有),如果还有问题可以换成上面的库(keyboard,mouse)

可以

kirbystudy commented 1 year ago

给各位大佬带来点麻烦了,我是win11 64位系统的,今天用管理员权限打开就可以监听到了。现在正常用的,谢谢2位大佬的讲解。

orchie commented 1 year ago

没明白这是怎么后台执行的,我点了开始执行后 就开始前台操作,这期间没法干别的事情.命令行下执行没有反应. 使用的是5.1,系统为win10,终端为powershell @Monomux

Monomux commented 1 year ago

我点了开始执行后 就开始前台操作,这期间没法干别的事情.命令行下执行没有反应. 使用的是5.1,系统为win10,终端为powershell

抱歉哈,我有点想当然了,后台执行应该是记录窗口句柄然后向窗口发消息这样的,目前程序只是通过系统api重现记录的操作,会影响用户操作,还处于前台执行的范畴。

关于5.1版本命令行没反应的问题可以参考 #190,可以回退5.0版本使用命令行。目前相关的代码已经重构了,后续版本不会出现这个问题。

ZutJoe commented 1 year ago

没明白这是怎么后台执行的

目前是没有后台执行的,app是直接通过操作鼠标和键盘来的,而不是在后台模拟

orchie commented 1 year ago

好的 谢谢大佬.那么后续有计划出后台执行的功能吗?因为这是一个非常吊的功能,也非常有用!(不然只能傻傻的看着电脑不能干别的) @Monomux @ZutJoe

ZutJoe commented 1 year ago

也许会吧

Monomux commented 1 year ago

这个实现有点困难,目前程序使用的模块都是直接模拟键鼠操作。如果要自己写的话需要用系统层api实现(还要支持跨平台)。

目前只能说会考虑做后台执行的功能,以前的1.1版本有尝试过后台模式,但看起来遇到了很多坑。

orchie commented 1 year ago

这个实现有点困难,目前程序使用的模块都是直接模拟键鼠操作。如果要自己写的话需要用系统层api实现(还要支持跨平台)。

目前只能说会考虑做后台执行的功能,以前的1.1版本有尝试过后台模式,但看起来遇到了很多坑。

可以先支持win呀,mac上都没听说过能后台执行的.就算只实现win后台操作,也肯定能火起来的.加油!

drw2005 commented 10 months ago

很期待后台执行功能,太需要了。