x64 コードが WIN32 API (DLL) を呼び出して落ちた場合等に出て、問答無用で勝手に設定を追加していく。 開発中などに非常に邪魔なので、切ってしまう。
以下のコマンドを実行すると、「互換性アシスタント」関連の設定が全て消える
> sc stop "PcaSvc"
> sc config "PcaSvc" start= disabled
> reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /va /f
-
「プログラム互換性アシスタント」はサービスとして稼動している
- 互換性の問題で例外が発生した場合などにダイアログを出す
services.msc
等では「Program Compatibility Assistant Service」という名前でリストに出る
-
「互換モード」設定はレジストリに保存される
- エクスプローラから実行ファイルの「プロパティ」を出してもこの設定は見えない
- How to reset Program Compatibility Assistant for testing?
> sc qc "PcaSvc"
> sc stop "PcaSvc"
> sc config "PcaSvc" start= disabled
> sc config "PcaSvc" start= auto
> sc start "PcaSvc"
> reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"
> reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /va /f