想用 Python 写点类似 autohotkey 的脚本 请问怎么注册全局热键

2022-09-22 21:20:17 +08:00
 usnake

需要屏蔽热键原来的功能

2651 次点击
所在节点    Python
14 条回复
ClericPy
2022-09-22 21:25:09 +08:00
插眼等个答案

插嘴一句题外话:

很早以前用 ctypes 调用过 autohotkey.dll, 后来有个老外有个库可以把 Python 代码翻译成 ahk 的, 然后他把中文编码问题修好了以后就直接用那个了... 再后来实在喜欢 ahk 的编译为单个 exe 功能, 就不走 Python 了...
ClericPy
2022-09-22 21:27:12 +08:00
忘了说, 以前用 tkinter 貌似有绑定 key Event
myxingkong
2022-09-22 21:36:03 +08:00
zijieq
2022-09-22 21:40:54 +08:00
之前用过这个是可以的: https://pypi.org/project/system_hotkey/
usnake
2022-09-22 21:47:10 +08:00
@ClericPy 我是初学者 感觉 ahk 的语法太乱了 不知道你们熟手怎么看
ClericPy
2022-09-22 21:52:05 +08:00
@usnake 无它, 难受的想死, 所以只写点简单功能...

主要就是看好它两个地方: 编译单文件 exe(比 pyinstaller 那种要解压 tmp 的靠谱多了, 是真的单文件, 前者解压过去有时候 kill 了就留了一大堆文件不清理很烦) 天生丰富的 Windows api. 当时比如针对控件 id 的点击或者后台点击太方便了, 挂机干很多事情; 另一个就是窗口内相对坐标的点击, 比 pyautogui 那种全屏定位坐标的方便不少
LittleboyHarry
2022-09-22 21:58:30 +08:00
不如用 C#,写起来跟 Java 一样爽快、跟 Windows 兼容性好。找一下 nuget 相关库:

https://www.nuget.org/packages?packagetype=dependency&sortby=totalDownloads-desc&q=hotkey&prerel=false
usnake
2022-09-22 22:00:47 +08:00
@ClericPy 我听人家说 aardio 比 autohotkey 语法好得多,但是还没开始学习,不知道您有没有了解过
ClericPy
2022-09-22 22:08:58 +08:00
@usnake 就是 一鹤 那个 aauto 吧, 名气很大也很厉害, 下载很久, 懒得用放弃了... Python 够使的了, 虽然我在 Python 之前先用的 autohotkey, 当时在 AutoIt 3 和 Python 之间选了后者...
kid740246048
2022-09-22 22:18:04 +08:00
@usnake #5
我也觉得语法挺乱的,不过 AutoHotkey v2 版本相对改善了一点
ila
2022-09-22 22:26:34 +08:00
可以试手 autoit ,编译单一文件
weixiangzhe
2022-09-23 10:21:50 +08:00
我用过一个 python 的版本
https://github.com/autokey/autokey
610915518
2022-09-23 11:34:09 +08:00
ahk 在 spam key 的时候很容易死循环。比如鼠标按着左键即达成模拟狂点左键的效果,有时候即使松开左键了还在狂点。。。

$XButton1::
While GetKeyState("XButton1", "P") {
Send {f}
Sleep 50
}
Return
yagamil
2022-10-09 12:48:38 +08:00
linux 下用的 autokey

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/882238

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX