Skip to content
Blog
Go back

PAUSEキーの不思議な挙動

· Updated:

前日の続き。

  • Win32でのPauseキーのスキャンコードもわりと変な挙動をする
    • Pauseは0x45(NumLock)でイベントが来るし、一方のNumLockは0xe045で来る
    • Ctrl+NumLockはCtrl+Pauseで認識される
    • MapVirtualKeyはPauseに0xe11dを返すけど、これはSendInputの仕様上送れない
  • SendInputで模倣しようとしても、こっちもわりと変
    • 0x45を送るとNumLockになるし、一方の0xe045は不明なキーになる
    • スキャンコードではPauseは送りようがない、のかもしれない
  • 結局、SendInputでVKを送るしかなかった
    • ただし、このときにスキャンコードも一緒に送らないと駄目だった
    • これが仕様上正しいのかは分からない

おまけ#

  • Windowsでは、timeBeginPeriod/timeEndPeriodでタイマーの分解能を変更できる
    • デフォルトだと16msくらいらしいので、これで1msにすると良い
    • だいぶ最近まで「OS全体に影響する」という悪名高いAPIだったらしい

参考資料#