5

マウスの制御を取得し、単純な無限 while ループ内で実行するスクリプトに取り組んでいます。

def main():
    while True:
        do_mouse_stuff()

マウス コントロールが原因で、Python ウィンドウをクリックして ctrl-c を押すのが面倒なので、Windows にグローバル ホットキーを実装する方法を探していました。私は相対的なPython初心者でもあるので、おそらく明らかな答えを見逃しています。私が見つけたもの:

pyhk - 私が得た最も近いものですが、このモジュールは何らかの理由で私のコンピューターに厄介なことをします (おそらく私が間違ったことをしているのでしょう)。マウスの遅延、完全な入力ロックアウト、私が賢くないあらゆる種類のものを導入します対処するのに十分です。

pyHook -チュートリアルに従って、正常に動作しますが、無限実行メッセージ ポンプと while ループが排他的に実行されているように見え、それを機能させる方法がわかりません。

別の方法- この方法も見つけましたが、pyHook と同じ問題があり、try ループと while ループが共存できません。

別のループを維持するのではなく、ループをこれらの例に統合する方法を見つけようとしましたが、おそらく私の初心者が原因で、それを機能させることができませんでした。誰かがこれを機能させる方法について私をまっすぐにすることができますか?

4

1 に答える 1

-1

おそらく使用していmsvcrtますか?それが「グローバル」かどうかはわかりませんが、残念ながら今はテストできませんが、キーボードのものと統合されたエスケープキー(この質問から取得)を検出する例を次に示します。

import msvcrt

def main():
    while True:
        do_mouse_stuff()

        # Check if `Esc` has been pressed
        if msvcrt.kbhit() and msvcrt.getch() == chr(27).encode():
            aborted = True
            break
于 2012-12-13T07:02:50.537 に答える