pyAutoGUIでキー操作をする方法です。
これを使えばキーボード操作を自動化することができます!
マウスで操作する方法はコチラ
文字列のキー入力模擬
typewrite()は、文字列を渡すと、その文字列のキー入力を行います。
>>> import pyautogui as pgui >>> >>> def testKey(): pgui.click(50,50) pgui.typewrite('Hello, pyautogui key!') >>> testKey()
左上に適当にメモ帳を配置して実行すると、見事「Hello, pyautogui key!」が書かれます。
1キーごとのキー入力模擬
typewrite()は、配列に入力したいキーに対応した文字列を渡すことで、1キーごとのキー入力を模擬してくれます。
こんな感じ。
>>> def testKey2(): pgui.click(50, 50) pgui.typewrite(['a', 'b', 'left', 'left', 'X', 'Y']) >>> testKey2()
これを実行すると、「XYab」と書かれます。
これは
- a入力
- b入力
- 左キー(bの前にカーソル)
- 左キー(aの前にカーソル)
- X入力
- Y入力
と入力されているから。
ポイントは真ん中にある「'left'」ですね。
特殊キーに対応した文字列
typewrite()は、各キーに対応した文字列を待ち受けています。
例えば今回のように「←キー」を入力させたい場合。
「'left'」が対応した文字列なので、「'left'」を渡してあげます。
すると「←キー」の入力を模擬してくれます。
キー文字列 | 対象のキー |
---|---|
'a', 'A', '1', '@'など | 各キーの文字 |
'enter', 'return', '\n' | Enter |
'esc' | Esc |
'shiftleft', 'shiftright' | 左右のShift |
'altleft', 'altright' | 左右のAlt |
'ctrlleft', 'ctrlright' | 左右のCtrl |
'tab', '\t' | Tab |
'backspace' | バックスペース |
'delete' | デリート |
'pageup', 'pagedown' | ページアップ/ページダウン |
'home' | HOME |
'end' | END |
'up', 'down', 'left', 'right' | 上下左右 |
'f1', 'f2', 'f3', and so on | ファンクションキー(F1, F2など) |
'volumemute' | 音量 ミュート |
'volumedown' | 音量 下げる |
'volumeup' | 音量 上げる |
'pause' | Pause |
'capslock' | CapsLock |
'numlock' | NumLock |
'scrolllock' | ScrollLock |
'insert' | Insert |
'printscreen' | Print Screen |
'winleft', 'winright' | 左右のWindowsキー |
'command' | Mac OS XのCommand |
'option' | Mac OS XのOption |
複合キーの入力
普段キーは単発で使うだけではないですよね?
例えば
- Ctrl+Cでコピー
- Windows+EでPC(またはクイックアクセスやマイコンピュータ)*1
- Alt+F4でウィンドウを閉じる
とかとか。
今回は試しに、Alt+Tabでウィンドウ変更をしてみましょう。
>>> def tabChg(): pgui.keyDown('alt') pgui.keyDown('tab') pgui.keyUp('tab') pgui.keyDown('tab') pgui.keyUp('tab') pgui.keyDown('tab') pgui.keyUp('tab') pgui.keyUp('alt') >>> tabChg()
実行すると3回分Alt+Tabを押して、3回分ウィンドウ変更をします。
あとがき
特定の入力を毎回行わなければならない……
というケースがあったとき役立ちそうですね!
マウスとキーボードの自動化を組み合わせれば、色々なことができそうですね!
*1:設定とWindowsのバージョンによって異なる