OKOtohime

Results 84 comments of OKOtohime

我换用了原来写的`pynput`+`pyautogui`实现 ![图片](https://user-images.githubusercontent.com/70839036/195644743-c5ff8dc1-e22b-48f1-91a9-dbdf12f28e13.png) 打包后发现没有执行脚本的热键有时不灵的问题,热键响应正常。 想了一下,还是`PyWinHook`的问题,不是兼容性上的,而是这个库的监听是在主线程上运行的: ![图片](https://user-images.githubusercontent.com/70839036/195644597-7c7a312a-de44-46af-a2ad-ed4dfa043e6d.png) 换用`pynput`后,监听是在其它线程中运行的: ![图片](https://user-images.githubusercontent.com/70839036/195646616-29d2068c-02ec-4657-8353-07ef8eacb269.png) 主线程除了处理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))

> 我点了开始执行后 就开始前台操作,这期间没法干别的事情.命令行下执行没有反应. 使用的是5.1,系统为win10,终端为powershell 抱歉哈,我有点想当然了,后台执行应该是记录窗口句柄然后向窗口发消息这样的,目前程序只是通过系统api重现记录的操作,会影响用户操作,还处于前台执行的范畴。 关于5.1版本命令行没反应的问题可以参考 #190,可以回退5.0版本使用命令行。目前相关的代码已经重构了,后续版本不会出现这个问题。

这个实现有点困难,目前程序使用的模块都是直接模拟键鼠操作。如果要自己写的话需要用系统层api实现(还要支持跨平台)。 目前只能说会考虑做后台执行的功能,以前的1.1版本有尝试过`后台模式`,但看起来遇到了很多坑。

>Try one of the following resolutions: >* Please make sure that you have an X server running, and that the DISPLAY environment variable is set correctly 根据报错里面的提示设置一下试试?

目前可以参考一下https://github.com/taojy123/KeymouseGo/issues/122#issuecomment-1153053230 的内容和 [wiki](https://github.com/taojy123/KeymouseGo/wiki/%E6%96%87%E6%A1%A3(5.1%E7%89%88%E6%9C%AC%E5%8F%8A%E4%BB%A5%E4%B8%8B)#%E6%89%A9%E5%B1%95)添加插件实现。 不过这种插件功能在后续版本会舍弃,因为程序实现的不是很好,后续版本应该能有更方便的办法实现这个需求。

这是个不错的想法,感觉可以让程序提供一个类似于REPL的环境,可以执行每行输入的操作,读取脚本文件可以视作将文件内容输入到控制台。这样的话脚本的语法需要修改一下以便有更多的可操作空间,比如修改事件参数等。 > 另外,执行速度好像和系统时间不同步,录制的速度和执行速度之间有一个差值,软件中没有读表,执行起来速度不一致。 这个问题目前看起来没办法解决,因为每次事件执行耗时不一定一致。程序里调整执行速度其实是在调整事件间的执行延时,而实际执行的速度未必与录制时执行的速度一致。

> 测试了一下,貌似没有启动脚本的热键,好像只有开始录制,暂停录制和终止录制,没有运行脚本这个热键 确实,不知为何前面的`开始/`没了 https://github.com/taojy123/KeymouseGo/blob/0313f8a8b547de6c3880eb059588f1c8e88436c7/assets/i18n/zh-cn.ts#L75-L78

> 组合键的实现我按照vscode那样实现, ok吗? 可行 > 需要改变ui,但是我看你新分支里面也改变了ui,所以还是等你结束我再做还是同时来做 我对UI的修改只有那些部分,可以pull那个分支的代码来做新功能 > ps:我能不能得到一个`Collaborator` 你可以给repository owner发封邮件试试:eyes:

> 好的,那些不会变了是嘛 刚才在分支中rebase了新合并的修改,现在不会再改UI文件了

感谢指正,该问题在目前的开发分支中已经修复 https://github.com/taojy123/KeymouseGo/blob/19211d36f135ffdc54d024d0035c89bd81fca52b/Event/Event.py#L12-L18