使用Jython-standalone-2.7时,无法导入pythoncom模块。
为了监听全局鼠标和键盘,因此用python2.7+pyhook写了个监听脚本,脚本在Pycharm中可以正常运行,但在Jython中调用时会报“ImportError: No module named pythoncom”的错,将python下的Lib/site-packages复制到Jython-standalone-2.7中的Lib/site-packages目录中也没用。(因为是为了IDEA开发的插件,所以必须用Java)
import pythoncom
import pyHook
def onMouseEvent(event):
# 监听鼠标事件
if(event.MessageName !='mouse move'):
print ("MessageName:",event.MessageName)
print ("Message:", event.Message)
print ("Time:", event.Time)
print ("Window:", event.Window)
print ("WindowName:", event.WindowName)
print ("Position:", event.Position)
print ("Wheel:", event.Wheel)
print ("Injected:", event.Injected)
print("---")
return True
def onKeyboardEvent(event):
# 监听键盘事件
if(event.MessageName !='mouse move'):
print("MessageName:", event.MessageName)
print("Message:", event.Message)
print("Time:", event.Time)
print("Window:", event.Window)
print("WindowName:", event.WindowName)
print("Ascii:", event.Ascii, event.Ascii)
print("Key:", event.Key)
print("KeyID:", event.KeyID)
print("ScanCode:", event.ScanCode)
print("Extended:", event.Extended)
print("Injected:", event.Injected)
print("Alt", event.Alt)
print("Transition", event.Transition)
print("---")
return True
def main():
hm = pyHook.HookManager()
hm.KeyDown = onKeyboardEvent
hm.HookKeyboard()
hm.MouseAll = onMouseEvent
hm.HookMouse()
pythoncom.PumpMessages()
if __name__ == "__main__":
main()
```java
PythonInterpreter interpreter = new PythonInterpreter();
String pythonFunc="src/Hook/MyHOok/MyHook.py";
interpreter.execfile(pythonFunc);
//报错
Exception in thread "main" Traceback (most recent call last):
File "src/Hook/MyHOok/MyHook.py", line 2, in <module>
import pythoncom
ImportError: No module named pythoncom
```
pip3 install pypiwin32
安装 easy_install
https://www.jianshu.com/p/c61cdd2b9e35
1.首先,要检查下jython安装目录下有没有pythoncom模块
2.如果没有的话,切换到jython安装目录下的scripts文件下,打开cmd窗口,输入命令pip install pythoncom命令进行安装
先试一下吧,如果不行就再上网查查
这个安了没啊
pip install pywin32
上面发的链接有些有帮助