10

いくつかのタスクを自動化したい (例: Eclipse スタイルをシミュレートする-ctrl他のエディターのダイアログを開く)。一般的なパターンは次のとおりです。ユーザーが何らかのキーの組み合わせを押すと、プログラムがそれを検出し、ダイアログをポップアップしてユーザー入力を取得し、通常は実行可能ファイルを実行して、対応するコマンドを実行します。shiftR

私のターゲット環境は Windows ですが、クロスプラットフォームがいいでしょう。私のプログラムは一度起動され、構成ファイルを読み取り、キーの組み合わせまたはその他のイベントによってトリガーされるまでバックグラウンドで待機します。

基本的にオートホットキー。

オートホットキーを使用しないのはなぜですか? 私は実際にかなりの数のオートホットキー マクロを持っていますが、より健全な言語を使用したいと考えています。

私の質問は: バックグラウンドの python プロセスにキーの組み合わせを検出させる良い方法はありますか?

更新: pyHook と win32 拡張機能を使用して答えを見つけました:

import pyHook
import pythoncom

def OnKeyboardEvent(event):
    print event.Ascii

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()

while True:
    pythoncom.PumpMessages()
4

2 に答える 2

7

AutoItを見たいと思うかもしれません。AutoHotKey でできることはすべて実行しますが、言語の構文に頭を悩ませることはありません。さらに、COM バインディングがあるため、必要に応じてその機能のほとんどを Python で簡単に使用できます。作り方は以前こちらに投稿しました。

于 2008-11-16T22:05:51.160 に答える
5

pyHook と win32 拡張機能を使用して答えを見つけました:

import pyHook
import pythoncom

def OnKeyboardEvent(event):
    print event.Ascii

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()

while True:
    pythoncom.PumpMessages()
于 2009-02-17T16:07:25.310 に答える