XP seçeneğiyle uyumluluğu ayarlamanın bir yolu var mı ?
Daha da iyisi, tüm bir dizine uyumluluğu (dizindeki yürütülebilir dosyalar) ayarlayabilmenin bir yolu var, böylece derlenen / derlenen her çalıştırılabilir dosya üzerinde zaten "bayrak" var mı?
XP seçeneğiyle uyumluluğu ayarlamanın bir yolu var mı ?
Daha da iyisi, tüm bir dizine uyumluluğu (dizindeki yürütülebilir dosyalar) ayarlayabilmenin bir yolu var, böylece derlenen / derlenen her çalıştırılabilir dosya üzerinde zaten "bayrak" var mı?
Yanıtlar:
Uygulama uyumluluğu bayraklarını ayarlama veya değiştirme olanağı sağlayan bir araç bilmiyorum.
Ancak uygulama uyumlu bayrakları kayıt defterinde saklanır (kullanıcı veya sistem bölümü):
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
Bu nedenle, gerekli girişi oluşturmak için standart komut satırı kayıt düzenleyicisini kullanabilirsiniz:
reg.exe Add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\Program Files\MyApp\Test.exe" /d "WINXPSP3"
Mevcut bayraklarla ilgili daha fazla bilgi için, Bir Uygulamayı Yönetici Olarak Çalıştırmak veya Uyumluluk Modunda görmek için blog yazısına bakın .
Bir toplu iş dosyasında kullanın:
> set __COMPAT_LAYER=WinXP
.exe çağrısından önce
Görmek:
Robert'ın cevabı tam açıktı. Üzerini biraz genişletmek ve OP’nin toplu modunu ayarlama konusundaki sorusunu cevaplamak için ...
İşlemek için .exe dosyaları ile dolu bir klasör varsa, bunu yapabilirsiniz:
for %x in ("*.exe") do reg.exe Add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%~fx" /d "WINXPSP3"
Bu örnek, HKLM yerine HKCU kullanır; İstediğiniz birini seçtiğinizden emin olun.
Ayarları kaldırmak için, her biri için bir onay istemi ile:
for %x in ("*.exe") do reg.exe Delete "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%~fx"
/fOnay istenmesini istemiyorsanız sona ekleyin .
(Bu cevabı oylarsanız, lütfen Robert’e de oy verin!)