准备做一个鼠标事件响应程序。
查了一下相关python的第三方类库,发现有 pyhook。
一、起源 pyhook
1、pyhook是最早的版本
pyhook支持的python版本比较低,代码在 https://sourceforge.net/projects/pyhook/
2、之后产生了两个并行版本 pyHook3 和 pyWinhook
https://github.com/gggfreak2003/PyHook3
- pyHook3 在6年前就已经不再更新,并在2020年将代码库设为 ReadOnly !
https://github.com/Tungsteno74/pyWinhook
- pyhook 在 2017-03-9 入驻 github 后,发布了 1.5.2 版本后 并改名为 phWinHook;
- 1.6.0 (2019-01-24) 支持 python 3.x;
- 2020-01-17 发布了最新的版本 1.6.2;
- 目前该项目保持活跃;
二、编译
直接从 pycharm 安装 pyHook3 / pyWinhook 不成功。
所以,从 sourceforge和 github 下载各个版本的代码,做了几次编译的尝试。
下面是成功编译 pyWinhook 的几种情况和步骤:
1、下载 swig
- https://www.swig.org/download.html
2、设置环境变量
下载后,是一个zip文件,解压后放在没有空格和中文的路径下,比如 D:\programs\swig-4.1.1
- 设置系统环境变量,将swig的路径加到路径下: PATH=$PATH;D:\programs\swig-4.1.1
3、关闭所有 pycharm 项目,即重启pycharm
4、启动 pycharm 打开 pyWinhook项目
5、按 Alt + F12 启动终端
pip install pywin32
6、生成 pyd
python setup.py build_ext --inplace
phWinhook目录下生成 _cpyHook.cp38-win_amd64.pyd
7、生成 wheel
python setup.py bdist_wheel
dist目录下生成 pyWinhook-1.6.2-cp38-cp38-win_amd64.whl
8、安装 wheel
pip install pyWinhook-1.6.2-cp38-cp38-win_amd64.whl
三、直接下载使用
1、在设置了 swig 环境变量后,重新启动 pycharm
2、直接在 requirements.txt 中填写 pywin32
和 pyWinhook
3、执行 pip install -r requirements.txt
或者
4、按 Ctrl + Alt + S
进入 Project: MyProject --> python interpreter 中手动添加。
四、直接下载 wheel
1、下载地址
https://www.lfd.uci.edu/~gohlke/pythonlibs/
2、安装
pip install pyWinhook-1.6.2-cp38-cp38-win_amd64.whl