想用 Python 写点类似 autohotkey 的脚本 请问怎么注册全局热键 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
usnake
V2EX    Python

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

  •  
  •   usnake 2022-09-22 21:20:17 +08:00 3238 次点击
    这是一个创建于 1191 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需要屏蔽热键原来的功能

    14 条回复    2022-10-09 12:48:38 +08:00
    ClericPy
        1
    ClericPy  
       2022-09-22 21:25:09 +08:00
    插眼等个答案

    插嘴一句题外话:

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

    主要就是看好它两个地方: 编译单文件 exe(比 pyinstaller 那种要解压 tmp 的靠谱多了, 是真的单文件, 前者解压过去有时候 kill 了就留了一大堆文件不清理很烦) 天生丰富的 Windows api. 当时比如针对控件 id 的点击或者后台点击太方便了, 挂机干很多事情; 另一个就是窗口内相对坐标的点击, 比 pyautogui 那种全屏定位坐标的方便不少
    LittleboyHarry
        7
    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
        8
    usnake  
    OP
       2022-09-22 22:00:47 +08:00
    @ClericPy 我听人家说 aardio 比 autohotkey 语法好得多,但是还没开始学习,不知道您有没有了解过
    ClericPy
        9
    ClericPy  
       2022-09-22 22:08:58 +08:00
    @usnake 就是 一鹤 那个 aauto 吧, 名气很大也很厉害, 下载很久, 懒得用放弃了... Python 够使的了, 虽然我在 Python 之前先用的 autohotkey, 当时在 AutoIt 3 和 Python 之间选了后者...
    kid740246048
        10
    kid740246048  
       2022-09-22 22:18:04 +08:00
    @usnake #5
    我也觉得语法挺乱的,不过 AutoHotkey v2 版本相对改善了一点
    ila
        11
    ila  
       2022-09-22 22:26:34 +08:00 via iPhone
    可以试手 autoit ,编译单一文件
    weixiangzhe
        12
    weixiangzhe  
       2022-09-23 10:21:50 +08:00
    我用过一个 python 的版本
    https://github.com/autokey/autokey
    610915518
        13
    610915518  
       2022-09-23 11:34:09 +08:00
    ahk 在 spam key 的时候很容易死循环。比如鼠标按着左键即达成模拟狂点左键的效果,有时候即使松开左键了还在狂点。。。

    $XButton1::
    While GetKeyState("XButton1", "P") {
    Send {f}
    Sleep 50
    }
    Return
    yagamil
        14
    yagamil  
       2022-10-09 12:48:38 +08:00
    linux 下用的 autokey
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2619 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 14:46 PVG 22:46 LAX 06:46 JFK 09:46
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86