私のキーボードには、さまざまな非標準のキーボードタスク用のボタンの列が含まれています。これらのキーには、音量の変更、再生または一時停止、トラックのスキップなどの機能が含まれています。Pythonで基本的な再生/一時停止をシミュレートするにはどうすればよいですか?ちなみに、私はWindowsを使用しています。
3 に答える
pywin32を使用します。インストールには、多数のAPIドキュメント(通常はのような場所に配置されますC:\Python32\Lib\site-packages
)がバンドルされています。これは、基本的に、Windowsの多くの低レベルタスクに使用されるWin32ライブラリに多くのものをラップします。
インストール後、 keybd_eventのラッパーを使用できます。
SendInput
代わりに使用することもできますがkeybd_event
、PyWin32でラップされていないようです。SendMessage
オプションですが、より面倒です。
char-to-codeマッピング関数がここで役立つとは思えないので、これらの特別なボタンの仮想スキャンコードを調べる必要があります。ここでリファレンスを見つけることができます。
次に、関数を呼び出すだけです。以下のスニペットは、私のコンピューターでチャックベリーを一時停止します。
>>> import win32api
>>> VK_MEDIA_PLAY_PAUSE = 0xB3
>>> hwcode = win32api.MapVirtualKey(VK_MEDIA_PLAY_PAUSE, 0)
>>> hwcode
34
>>> win32api.keybd_event(VK_MEDIA_PLAY_PAUSE, hwcode)
MapVirtualKey
必要なハードウェアスキャンコードkeybd_event
(または、より可能性が高いのはキーボードドライバー)を提供します。
これらはすべてキーボードドライバーによってスナップアップされるため、キーストロークが送信される場所を実際に制御することはできません。あなたSendMessage
はそれらを特定のウィンドウに送ることができます。メディアキーは音楽プレーヤーなどによって傍受されるため、通常は問題になりません。
これは、最近のすべての更新プログラムがインストールされているWindows1064では機能しませんでした。動作する前にこれ(3番目のパラメーター2)が必要でした。
win32api.keybd_event(0xB3,0,2,0)
なぜそれが機能するのかをわざわざ調べませんでしたが、これや他の同様の投稿が何らかの理由で私のPCで機能しないので私を苛立たせたので、それをそこに捨てました。
これにより、PCでAmazonMusicが正常に一時停止/再生されました。
を使用できますpyautogui
。このライブラリには、多くのキーボードとマウスのシミュレーションが含まれています。pip install pyautogui
cmdで実行をインストールするには。
再生/一時停止のキー押下をシミュレートするには、を使用する必要がありますpyautogui.press("playpause")
。
https://pyautogui.readthedocs.io/en/latest/keyboard.htmlでドキュメントをチェックして、サポートされているキーとその他のキーボード機能のリストを確認してください。