Windowsでゲームやブラウザを使っている最中、操作していたウィンドウから突然フォーカスが外れるようになった。
ほんの一瞬のことだが、ゲームなら入力が途切れ、ブラウザなら文字入力が止まる。エラー画面が出るわけでもない。それでも繰り返されると、「また起きるかもしれない」という警戒が残り、集中そのものが削られていく。
今回、私の環境で原因を追ったところ、直接フォーカスを取得していたのはWSLgが起動した「msrdc.exe / RemoteApp」だった。そして、その経路を動かすきっかけになっていたのがDocker Desktopだった。
最初は、起動中のゲームやアプリを疑った
不具合が目立ったのはゲーム中だった。そこで最初は、同時に起動していた別のゲームや常駐アプリが前面へ出ているのではないかと考えた。
候補になりそうなアプリを一つずつ終了した。しかし現象は止まらず、ゲームをしていないブラウザの操作中にも発生した。
ここで「特定のゲームの不具合」という見方を捨てられた。困った現象が起きた場面と、本当の原因がある場所は、必ずしも同じではない。
PowerShellのログで、割り込んだプロセスを捕まえる
目で追うだけでは、どのウィンドウが割り込んだのか分からない。そこでPowerShellを使い、前面ウィンドウが切り替わった瞬間を記録した。
ログには、操作中のアプリの直後に次の情報が残っていた。
- プロセス:
msrdc.exe - ウィンドウ名:
RemoteApp
さらに親プロセスとコマンドラインを調べると、親はwslhost.exeで、WSLDVC_PACKAGEやwslg.rdpという文字列も確認できた。
WSLgは、LinuxのGUIアプリをWindows上で扱うための仕組みで、RDP技術を使ってLinux側の画面をWindowsへ統合している。
見覚えのないRemoteAppは、外部から接続された画面ではなく、WSLのGUI統合に使われていたものだった。
Docker Desktopを止めると消え、起動すると再発した
ただし、WSLgが関係していると分かっただけでは十分ではない。
なぜ、LinuxのGUIアプリを使っていないのに動いているのかが残る。
wsl --shutdownを実行しても、しばらくするとWSLとmsrdc.exeが再び起動した。
そこでDocker Desktopを完全に終了し、条件を変えて確認した。
| 条件 | 結果 |
|---|---|
| Docker Desktop停止 | フォーカス喪失は発生しない |
| Docker Desktop起動 | フォーカス喪失が再発 |
| Docker Desktop再停止 | 再び発生しなくなる |
Docker DesktopはWSL 2をバックエンドとして利用できる。
私の環境では、Docker Desktopの起動をきっかけにWSLが動き、その中のWSLgがRemoteAppを起動し、msrdc.exeがフォーカスを奪う経路になっていた。
重要なのは、「Docker Desktopが直接フォーカスを奪った」と一段で決めつけないことだ。
Docker DesktopがWSLを起動する
→ WSLgがRemoteAppを起動する
→ msrdc.exeがフォーカスを取得する
原因をこの粒度まで分けたことで、Dockerを使うこと自体を諦めずに済む可能性が見えてきた。
※ここから先について
ここから先は、現在PANDORAの定期購読機能を実際に動かして確認するため、テストとして有料部分に設定しています。
もともとは無料で公開していた内容で、設定そのものも特別な独自ノウハウというほどのものではありません。
この記事の続きを読むためだけに、お金を払う必要はありません。買わなくて大丈夫です(笑)
今回は「単品購入していない別の記事が、定期購読へ加入すると読めるようになるか」を確認するためのテストとしてPaywallを置いています。
それでもテストに付き合ってみようという方だけ、この先へ進んでください。
ログインして記事を購入することで、全文を閲覧できます。
月額100円(税込)、申込時に初回決済、以後1か月ごとに自動更新されます。解約はマイページからいつでも可能で、解約後も支払済み期間の終了までは閲覧できます。日割り返金はありません。
© 2026 しゃとん's EYE