Windowsの再起動時に「tが再起動を妨げています」と表示されるのはなぜですか。


Windowsのドライブのフォルダーに検索をかけていますが、tというアプリケーションが見つかりません。なぜ？




ここは[プログラミングに情熱をそそぐ人のためのQ&Aサイト](https://ja.stackoverflow.com/tour)ですので、その観点で。

[The program “G” is preventing you from shutting
down](https://devblogs.microsoft.com/oldnewthing/20191030-00/?p=103036)や日本語解説記事
[「Windows
10」のシャットダウンを妨げる謎の「G」アプリ、マイクロソフトが説明](https://japan.zdnet.com/article/35145860/)
があります。

Windowsには文字列を扱う型が２種類あります。

  * ANSI（日本語においてはShift-JIS）  
１文字1バイトが基本であり、日本語文字などの非ASCII文字は2バイトとなる。  
例えば`ABC`なら `0x61 0x62 0x63 0x00` となり終端の`NUL`を加えて4バイトとなる。

  * Unicode（厳密にはUTF-16）  
１文字2バイトが基本。ASCII文字であっても2バイトであり、その場合上位ビットは0となる。  
例えば`ABC`なら `0x61 0x00 0x62 0x00 0x63 0x00 0x00 0x00` となり8バイトとなる。

ここで、APIが文字列型を取り違えると、つまり、Unicode形式の`ABC`をANSI形式として解釈すると2バイト目の`0x00`で終端されて`A`という文字列になってしまいます。

記事では、Unicodeでの`GDI+ Hook
Window`がANSIで解釈すると`G`になってしまうことが指摘されていますが、質問の状況においても同様で、`t`から始まる何らかの
**ウィンドウタイトル** なのでしょう。  
また、ここで表示されるのは実行ファイル名ではなくウィンドウタイトルですので、`t.exe`を探しても無意味です。（例えば実行ファイル名`notepad.exe`のウィンドウタイトルは`メモ帳`になります。）

