XP option(右クリック/プロパティ)との互換性を設定する方法はありますか/ compatibility ...その1つ、はい:)コマンドラインから実行可能ファイルに?
さらに良いことに、互換性をディレクトリ全体(ディレクトリ内の実行可能ファイル)に設定して、コンパイル/ビルドされるすべての実行可能ファイルに「フラグ」がすでにあるようにする方法はありますか?
アプリケーション互換性フラグを設定または変更できるツールがわかりません。
ただし、アプリケーション互換性フラグはレジストリ(ユーザーまたはシステムパーツ)に保存されます。
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
したがって、標準のコマンドラインレジストリエディタを使用して、必要なエントリを作成できます。
reg.exe Add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\Program Files\MyApp\Test.exe" /d "WINXPSP3"
使用可能なフラグの詳細については、ブログ投稿 管理者としてのアプリケーションの実行または互換モードでのアプリケーションの実行 を参照してください。
バッチファイルでの使用:
> set __COMPAT_LAYER=WinXP
.exe呼び出しの前
見る:
ロバートの答えは的確だった。少し拡張して、モードの一括設定に関するOPの質問に答えます...
処理する.exeファイルでいっぱいのフォルダーがある場合、これを行うことができます。
for %x in ("*.exe") do reg.exe Add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%~fx" /d "WINXPSP3"
この例では、HKLMではなくHKCUを使用しています。本当に欲しいものを選んでください。
設定を削除するには、それぞれの確認プロンプトで:
for %x in ("*.exe") do reg.exe Delete "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%~fx"
追加 /f
確認のプロンプトが表示されないようにする場合は、最後に。
(この回答に投票する場合は、ロバートにも投票してください!)