Python的KeyboardSwitch() missing 8解決方法

最近使用PyUserInput的KeyboardEvent的時候遇到了KeyboardSwitch() missing 8的情況;

該問題具體表現在當你focus的那個進程的窗口title帶中文, 就會出現上面那個錯誤, 如果都是英文或者其他ascii字符則不會;

查了些資料瞭解到是PyHook在Python3的windows下的一個bug, 我把程序直接丟到linux跑確實就沒有出現上面的那個問題; 


解決辦法:

1. 換Linux系統, 完美解決;

2. 換爲Python2, 這個沒試過, 據說是可以;

3. 不使用KeyboardEvent, 鍵盤的監聽用PyQt來代替解決, 不過挺麻煩的, 也不夠完美;

4. 卸載掉PyHook, 安裝PyHook-py3k, 完美解決, 但安裝步驟繁瑣, 但效果拔羣, 具體如下:

(1) pip uninstall pyhook卸載掉原來的PyHook;


(2) 下載PyHook-py3k: https://github.com/Answeror/pyhook_py3k


(3) 下載swig,地址: http://www.swig.org/download.html


(4) 用swig編譯安裝PyHook-py3k模塊: python setup.py build_ext --swig=..\swigwin-3.0.12\swig.exe


(5) 如果安裝過程報錯: vcvarsall.bat未找到, 則還需安裝vs2009或以上版本, 我裝的是vs2013, 裝完之後添加環境變量:VS100COMNTOOLS=%VS120COMNTOOLS%  , 這個環境變量根據具體情況可能要有所調整, 頂多就是把"120"改成"110"或

"130"或"140"而已; 重複(4)步, 沒有報錯就說明成功;


(6) 在pyhok_py3k-master裏面執行pip install .    ;這樣PyHook模塊就安裝ok;


(7) 最後將_cpyHook.pyd和cpyHook.py複製到site-packages的根目錄就完事了;


(8) 試試跑一下最開始出錯的那個程序, 是不是成功了!


ps: 如果一直編譯失敗可以試試我這邊編譯好的模塊, 直接安裝模塊即可:

http://download.csdn.net/download/u014563989/9937193






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章