And*_*rov 10 python macos keyboard-hook
我正在尝试在Python中为OSX编写一个简单的宏录制器 - 当脚本在后台运行并重放它们时,它可以捕获鼠标和键事件.我可以为后者使用autopy,前者有一个类似的简单库吗?
今天我遇到了一些针对这个问题的解决方案,并认为我会回过头来分享这里,以便其他人可以节省搜索时间.
一个非常棒的跨平台解决方案,用于模拟键盘和鼠标输入:http://www.autopy.org/
我还发现了一个简短但有效的(山狮之谜)如何全局记录击键的例子.唯一需要注意的是你必须使用Python2.6,因为2.7似乎没有可用的objc模块.
#!/usr/bin/python2.6
"""PyObjC keylogger for Python
by  ljos https://github.com/ljos
"""
from Cocoa import *
import time
from Foundation import *
from PyObjCTools import AppHelper
class AppDelegate(NSObject):
    def applicationDidFinishLaunching_(self, aNotification):
        NSEvent.addGlobalMonitorForEventsMatchingMask_handler_(NSKeyDownMask, handler)
def handler(event):
    NSLog(u"%@", event)
def main():
    app = NSApplication.sharedApplication()
    delegate = AppDelegate.alloc().init()
    NSApp().setDelegate_(delegate)
    AppHelper.runEventLoop()
if __name__ == '__main__':
   main()
对于鼠标输入,只需NSKeyDownMask使用此处可用列表中的相关掩码替换:http://developer.apple.com/library/mac/#documentation/cocoa/Reference/ApplicationKit/Classes/NSEvent_Class/Reference/Reference.html#//apple_ref/occ/clm/NSEvent/addGlobalMonitorForEventsMatchingMask:handler:
例如,NSMouseMovedMask用于跟踪鼠标移动.从那里,您可以访问event.locationInWindow()或其他属性.
| 归档时间: | 
 | 
| 查看次数: | 7791 次 | 
| 最近记录: |