私はPython for OSXで簡単なマクロレコーダーを書こうとしています。スクリプトはバックグラウンドで実行され、再生されるので、マウスやキーイベントをキャプチャできます。私は後者のためにautopyを使うことができます、前者には同様の単純なライブラリがありますか?OSXでPythonを使用してキーボードとマウスのイベントをキャプチャできますか?
答えて
OSXでPythonでこれを行う方法はないようです。
curses
をキー入力のキャプチャに使用できますが、マウス入力についてはわかりません。それだけでなく、誤解されていなければ2.7.2のstdライブラリに含まれています。
はここcurses
を使用せずに解決策です:
http://docs.python.org/faq/library.html#how-do-i-get-a-single-keypress-at-a-time
この質問はここに戻っていくつかの時間を頼まれた - Python cross-platform listening for keypresses?
あなたがそこに役立つサンプルコードを見つけるかもしれません!
今日この問題の解決策をいくつか見つけ出し、私はここで回り回って共有して、他の人が検索時間を節約できると考えました。
キーボードやマウスの入力をシミュレートするための気の利いたクロスプラットフォームソリューション:http://www.autopy.org/
私はまた、簡単に見つかりましたが(マウンテンライオンの通り)のキーストロークを記録グローバルにする方法の例を取り組んでいます。唯一の注意点は、Python 2.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()または他の属性にアクセスできます。
カルバン・チェン、ありがとう。あなたの提案はOS X 10.8.5で動作します。
コードhttp://docs.python.org/faq/library.html#how-do-i-get-a-single-keypress-at-a-time
#!/usr/bin/python
import termios, fcntl, sys, os
fd = sys.stdin.fileno()
oldterm = termios.tcgetattr(fd)
newattr = termios.tcgetattr(fd)
newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
termios.tcsetattr(fd, termios.TCSANOW, newattr)
oldflags = fcntl.fcntl(fd, fcntl.F_GETFL)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)
try:
while 1:
try:
c = sys.stdin.read(1)
print "Got character", repr(c)
except IOError: pass
finally:
termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags)
つ以上の溶液からここで言及 Key Listeners in python?
- 1. pythonでマウスとキーボードを無効またはロックしますか?
- 2. C#でキーボード/マウス入力をキャプチャして送信する
- 3. monkeyrunnerでマウスとキーボードの両方を同時に使用できますか?
- 4. GLFWを使用してマウスのドラッグをキャプチャしますか? [C++]
- 5. Python + PyGame - マウスとキーボードの同時イベントを処理する
- 6. OSXでPythonを使って画面を読み込んでキーボード/マウスを制御する
- 7. キーボードのイベントのデバイスを検索し、マウス
- 8. Chromeのすべてのウェブサイトでマウスとキーボードのデータをキャプチャする方法
- 9. マウスの上下のイベントを使ってマウスのクリックをシミュレートできますか?
- 10. OSXではフリーフォームシェイプをウィンドウとして使用できますか?
- 11. 個々のモニタ、マウス、キーボードを使用して、複数のVMを同じマシン上で実行できますか?
- 12. WMODE = "window"を使用するときにJSを使用してFlashプラグインでrighclickイベントをキャプチャします
- 13. キーボードとマウスの両方を使用して右クリックメニュー
- 14. JavaScriptでマウスとキーボードを使用した動的テーブルナビゲーション
- 15. マウスをキャプチャしたときのIsMouseOver
- 16. Windowsフォームボタンのイベントでマウスをキャプチャする方法
- 17. UbuntuでOpenCVとPythonを使用してビデオをキャプチャできない
- 18. コンストラクタでマウスをキャプチャできないのはなぜですか
- 19. X11:一般的なマウスとキーボードのイベントを検出する
- 20. VBのDatagridviewでマウスのクリックなどのイベントをキャプチャ
- 21. 奇妙なイベントのクロストーク:マウス&キーボード、WPF&Rx?
- 22. キーボード入力は、stdio.StandardIOをtwisted pythonで使用しています
- 23. マウスとキーボードをC#Monoのキーボードで操作する
- 24. Arduino Unoでキーボードを入力として使用できますか?
- 25. キーボードをToplevelのpythonで直接使用することはできません
- 26. Pythonを使用してWindowsでマウスのクリックを検出する
- 27. 左クリックが押されたときにのみマウス移動イベントをキャプチャする
- 28. ncursesを使ってコンソールアプリケーションでマウスのクリックをキャプチャする
- 29. MinkとSelenium2を使用して生キーボード入力を送信できますか?
- 30. Windows 8でマウスとキーボードのイベントをプログラムでトリガする方法はありますか?
いくつかのパッケージは、OS Xのサポート(例えば、 'keyboard')があります。https://stackoverflow.com/questions/11918999/keyを-listeners-in-python / –