前日の続き。
- Win32でのPauseキーのスキャンコードもわりと変な挙動をする
- Pauseは
0x45(NumLock)でイベントが来るし、一方のNumLockは0xe045で来る - Ctrl+NumLockはCtrl+Pauseで認識される
MapVirtualKeyはPauseに0xe11dを返すけど、これはSendInputの仕様上送れない
- Pauseは
SendInputで模倣しようとしても、こっちもわりと変0x45を送るとNumLockになるし、一方の0xe045は不明なキーになる- スキャンコードではPauseは送りようがない、のかもしれない
- 結局、
SendInputでVKを送るしかなかった- ただし、このときにスキャンコードも一緒に送らないと駄目だった
- これが仕様上正しいのかは分からない
おまけ#
- Windowsでは、
timeBeginPeriod/timeEndPeriodでタイマーの分解能を変更できる- デフォルトだと16msくらいらしいので、これで1msにすると良い
- だいぶ最近まで「OS全体に影響する」という悪名高いAPIだったらしい