Windows10にて認識しているPC接続のキーボードやマウスなどの入力デバイスが最後に入力されてからの経過時間を表示するアプリ「Last Input」を制作・公開しました。

このアプリを使うことで離席した時間やPCがスリープしていた時間、powercfgの情報にてスリープ干渉がない場合のスリープまでのタイマカウント値を確認することなどに利用できます。


制作した経緯


業務や制作に利用しているPCにて、Windowsがスリープしない問題があり色々と調べた結果、USB入力デバイス(USBゲームパッド)による可能性が出てきたので、
Windowsの最終入力経過時間を確認するために制作しました。Windowsが管理しているタイマ値を表示しているシンプルなアプリとなっています。


当初タイマ値だけを表示する簡単なものでしたが、PC放置などから再開(再入力)すると表示時間がリセットされるため、どのくらい経過したのかなど何が起きていたのか分かりにくかったので、最大経過時間を2つ表示するようにしました。


これによって、以下のような状況などを確認することが出来ます。

  • 未入力からスリープ復帰するまでの時間(離席していた時間など)
  • スリープ設定による画面オフからPCがスリープしなかった時間(入力以外のスリープ阻害要因の確認など)
  • 謎に勝手に入力操作された?時間(入力デバイスの誤動作や怪現象など)


ちなみに時間表示のフォントが大きいのは単純に高DPI環境(ワイドモニタ)で見にくかったからです。



使用方法


アプリを実行することでUSBキーボードやマウスなどの入力デバイスが最後に入力されてからの経過時間(最終入力経過時間)を表示します。

再度入力デバイスを操作することで経過時間がリセットされます。


経過時間をスリープタイマ値の表示と言えないのは、スリープには入力以外の阻害要因(powercfgなどで確認できます)があるためです。


最大経過時間1と2は経過した時間によって表示されます。

「最大経過時間2」は、実行してからの最大経過時間を表示します。

「最大経過時間1」は、「最大経過時間2」未満の最大経過時間を表示します。最大経過時間2の時間以上となった場合、リセットされます。


ウィンドウにある「RST」ボタンをクリックすることで「最大経過時間1」と「最大経過時間2」がリセットされます。


注意事項など


表示時間について


最大入力経過時間の最大値は99:99:99.99を想定して制作されています。100時間以上経過した場合には想定外の数値が表示される、表示が崩れる可能性があります。


PCをスリープさせたまま数日放置することはないと思いますが、日付の計算まで行っておりませんのでその際にはスリープ解除後に正しい時間値ではない可能性があります。

同様に潜在的なWindowsタイマの「49.7日問題」または「24.9日問題」に関する対応も行っておりません。



ゲームパッドについて


入力デバイスでも「ゲームパッド」は旧Windows時代よりスリープ対象外となっておりますので、ゲームパッドを操作(入力)していても最終入力経過時間はカウントするのが正しい動作となります。


Windows10の不具合として「HID 準拠ゲーム コントローラー」などのゲームパッド入力デバイスにて未操作であっても常に入力検出扱いとなることで画面オフしなかったり PCがスリープしない問題があります。このことについては以下で説明しています。



入力操作が無視される


Windows上で動作しているアプリやゲームによって、入力デバイスをフックしている場合には、入力操作があったとしてもカウントが継続する場合やカウントが停止し続ける場合があります。

この場合に想定されるアプリやゲームとしては、以下のようなものがあります。

  • 自動操作入力系キーマクロ関連ツール
  • ゲームのチート検出用のゲームガード系アプリ
  • フル画面やウィンドウ外の操作を禁止する系のゲーム
  • 仮想キーボード・マウスのあるリモートデスクトップ系アプリ


ダウンロード


アプリは以下のアップローダ(uploader.jp)に置いています(Microsoft Defenderによるウィルススキャン済み)

公開ファイル・データ用のディスクスペースは現在検討中なので今後格納先を変更する場合があります。


last_input_v100.zip

https://ux.getuploader.com/enoanoarts/download/1



作成日:2022/04/30

更新日: