😎
Pythonのライブラリで「お気に入りのショートカットキー作ってみる」
下記のライブラリを利用してみます。
pip install keyboard
キーボードの押した内容を記録する。
escapeを押すまで記録する。
import keyboard
record_list = keyboard.record(until='escape')
for i in record_list:
print(i)
実行結果
KeyboardEvent(w down)
KeyboardEvent(w up)
KeyboardEvent(e down)
KeyboardEvent(e up)
KeyboardEvent(r down)
KeyboardEvent(r up)
KeyboardEvent(t down)
KeyboardEvent(t up)
...
キーを押したタイミングで処理を実行する。
import keyboard
keyboard.add_hotkey('space', lambda: print('スペースキーが押された'))
keyboard.add_hotkey('w', lambda: print('wキーが押された'))
keyboard.wait()
実行して、キーを押すと...
wキーが押された
スペースキーが押された
wキーが押された
escapeで処理を終了させたい場合
import keyboard
keyboard.add_hotkey('space', lambda: print('スペースキーが押された'))
keyboard.add_hotkey('w', lambda: print('wキーが押された'))
keyboard.wait(hotkey='escape')
win32apiと連動させて、キー入力でアプリを起動する。
↓win32apiを活用して、ショートカットでアプリを起動してみましょう!
import keyboard
import win32api
import multiprocessing
from multiprocessing import Process
import os
pid_list = []
def terminate_pids():
for i in pid_list:
i.kill()
def open_notepad():
"""
メモ帳を開く
"""
print("メモ帳を起動")
print(os.getpid())
win32api.WinExec("C://Windows/System32/notepad.exe")
def exe_process():
print("呼び出された")
p = Process(target=open_notepad)
pid_list.append(p)
p.start()
if __name__ == '__main__':
multiprocessing.freeze_support() # windowsOS対応
keyboard.add_hotkey('ctrl+i', lambda: exe_process())
keyboard.add_hotkey('escape', lambda: terminate_pids())
keyboard.wait(hotkey='escape')
「ctrl+i」キーを押すたびに、メモ帳が開きます(笑)
「escape」でPythonのプログラムが終了します。
好きなショートカットキーを作成してみましょう。
Discussion