Hodoku
ほどくVRChat をしながら、Virtual Desktop や SteamVR の「VR の中のパソコンの画面」を使っていると、急にクリックもアプリも効かなくなることがあります。Ctrl + Alt + Del を押して「キャンセル」を押すと直りますが、VR の中にいると、そのためにヘッドセットを外すことになります。Hodoku は、その「固まった入力」を見張って見つけ、安全な順にほどく Windows 用の常駐ツールです。
主な機能
-
固まった入力を見つける
0.1 秒ごとに見張ります。動かそうとしているのにカーソルが 1.2 秒動かない、カーソルの動ける範囲が画面全体より狭い(閉じ込め)、Ctrl などが押したままの扱いになっている、クリックを 3 回続けて Windows が受け取っていない、を見つけます。
-
安全な順にほどく
押したままのキー・ボタンを離す、閉じ込めを外す、手前の窓から手を離す、デスクトップの往復(Ctrl + Alt + Del から「キャンセル」と同じように、画面を切り替えて戻す)の順に 1 つずつ試し、直ったところで止めます。
-
手でもほどける
「今すぐほどく」のボタン、通知領域のメニュー、ショートカット Ctrl + Alt + F12 で、手でもほどけます。何も見つからなくても、デスクトップの往復まで試します。
-
直せないものも知らせる
手前の窓が管理者の権限で動いている、応答していない、入力がほかのプログラムに止められている、も画面で知らせます。画面全体を暗くする Windows の確認の窓(「Windows セキュリティ」など)は、大事な確認のこともあるので閉じずに知らせ、出ている間はデスクトップの往復を自動ではしません。
-
記録を残す
何が起きて、どの段で直ったかを記録します。効かなかったときは、次に自動でほどくまで長く待ちます。
-
通知領域で見張る
窓を閉じても、通知領域で見張りを続けます。ほどいたら Windows の通知で知らせます。管理者の権限は要りません。
使いかた
- ZIP を展開して、Hodoku フォルダーを好きな場所に置く
- 「Hodoku.exe」を起動する(見張りが始まります)
- 窓は閉じてかまいません。終わるときは、通知領域のアイコンを右クリックして「終了」を選ぶ
対応環境
- 対応 OS
- Windows 11(64 ビット)
- 必要なもの
- Microsoft Edge WebView2(Windows 11 には最初から入っています)。管理者の権限は要りません
- VR の機器
- 種類は問いません(見るのは Windows の入力だけです)。SteamVR が動いているかは vrserver.exe で見分けます
- SteamVR がないとき
- VR の画面からの操作が固まったときと、押したままのキーだけを自動でほどきます。カーソルが隠れているとき(ゲームの固定)は、自動ではほどきません
- 見るもの
- カーソルの位置と動ける範囲、マウスを動かそうとした量、Ctrl・Alt・Shift・Win とマウスのボタンが押されているか、手前の窓のアプリのファイル名、SteamVR が動いているか。窓の題名は読まず、打った文字は残しません
- 保存するもの
- 設定と、ほどいた記録(新しい 500 件まで)。場所は %LOCALAPPDATA%\Hodoku
- 通信
- 起動時に、起動役の Hodoku.exe がインターネットに接続して、新しい版があるかを確かめます(設定や記録は送りません)。見張りをする本体には、インターネットに接続する処理はありません
- 画面の部品の通信
- 画面の表示に使う Microsoft Edge WebView2(Microsoft の部品)は、起動したときに Microsoft の診断データの受け口(events.data.microsoft.com)へ接続します(作者のパソコンで確かめました。WebView2 は本体の中でも動くので、本体の接続として見えることがあります)。送る中身は Microsoft の部品と Windows の「診断データ」の設定が決めるもので、作者には見えません。Hodoku はこの接続に何も渡しません
- パソコンの起動時に開く
- shell:startup のフォルダーに Hodoku.exe のショートカットを置きます(Hodoku は自分では登録しません)
- 更新
- 新しい版があるときだけ知らせ、「更新する」を押したときだけ入れ替わります
できないこと
- 実際に VR の中で固まったときに直るかは、まだ確かめていません。確かめたのは、作者のパソコン 1 台(Windows 11、Quest Pro を Virtual Desktop でつなぎ、SteamVR を使う環境)で、わざと入力を固めた試験(閉じ込め、押したままの右 Shift など)と、配布する ZIP から開いたときの動き(窓を閉じても見張りを続ける、Ctrl + Alt + F12 で今すぐほどく)、作者のパソコンに実際に出ていた「Windows セキュリティ」の確認の窓を見つけて知らせたことだけです
- 「クリックが届かない」が本物の場面で出るかは、確かめていません(わざと再現できませんでした)。Ctrl + Alt + Del で確認の窓が取り消されるかも、確かめていません
- VR のデスクトップ表示の間、Windows のカーソルが「隠れている」扱いになるかは確かめていません。なっていると自動ではほどかず、手でほどくことになります
- 作者の困りごとの原因は、まだ特定できていません。Ctrl + Alt + Del で直る状態のうち、閉じ込め・押したまま・カーソルが動かないものに向けて作っています
- すべての固まり方が直るとは限りません。ほどけないときは、今までどおり Ctrl + Alt + Del を押して「キャンセル」で直してください
- 「手前の窓から手を離す」が効くかは確かめていません(作者のパソコンでは Windows の設定で断られ、次の段に進みました)
- デスクトップの往復では、画面が一瞬だけ暗くなります(設定で切れます)。全画面のゲームが小さくなったり、画面を写すアプリが写し直したりすることがあります(確かめていません)。VR の中で往復したときの見え方も確かめていません
- 入力を止めるプログラムがいるときに往復で直るかは、確かめていません。通知領域のメニューと Windows の通知の見え方、ほかのパソコン、Windows 10、長い時間の連続使用でも確かめていません
- 電子署名がないため、はじめて起動するときに「Windows によって PC が保護されました」と出ることがあります
読みもの
更新履歴
- 1.0.4 にしました。BOOTH からダウンロードした ZIP を展開すると「開けませんでした」と出て開けない不具合を直しました(Windows がダウンロードしたファイルに付ける印のため)
- 1.0.3 にしました。画面から内部の機能を呼べないようにし、画面が外のページへ移らないようにしました(安全のための直し)
- 1.0.2 にしました。クリックが Windows に届かないときは、見つけてほどくようにしました。画面全体を暗くする Windows の確認の窓(Windows セキュリティなど)と、カーソルの下の窓が管理者の権限・応答なしのときは、知らせるようにしました(確認の窓が出ている間は、デスクトップの往復を自動ではしません)
- 1.0.1 にしました。カーソルが隠れているとき(ゲームがカーソルを隠して固定しているとき)に、フォーカスを動かしたりデスクトップを往復したりしないように直しました。タッチ・ペンの操作中を「隠れている」と取り違えないように直しました
- 公開しました
ライセンスとクレジット
- 個人利用
- できます
- 商用利用
- できます
- 改変・再配布・再販売
- できません
- 同梱している部品
- 画面に pywebview(BSD-3-Clause)などを使っています。部品の一覧とライセンス文書は、ZIP の licenses フォルダーにあります
- お問い合わせ
- X @noatti_vrc か BOOTH のメッセージ