ฉันจะตั้งค่าโหมดความเข้ากันได้สำหรับการปฏิบัติการจากบรรทัดคำสั่งได้อย่างไร


21

มีวิธีการตั้งค่าความเข้ากันได้กับตัวเลือก XP (คลิกขวา / คุณสมบัติ / ความเข้ากันได้ ... ใช่ใช่ :) เพื่อปฏิบัติการจากบรรทัดคำสั่งหรือไม่

หรือดีกว่ายังมีวิธีการตั้งค่าความเข้ากันได้กับไดเรกทอรีทั้งหมด (executables ในไดเรกทอรี) เพื่อให้ทุกปฏิบัติการที่ได้รับการรวบรวม / สร้างแล้วมี "flag" นั้นหรือไม่


1
@CodyGray - เพราะฉันใช้ IDE คอมไพเลอร์เก่า (จาก Win95); การเปลี่ยนเป็นรายการใหม่จะทำให้เกิดค่าใช้จ่ายที่เราไม่ได้เตรียมไว้ในตอนนี้ ถ้าฉันสร้างมันและเริ่มต้นจาก IDE สิ่งทั้งหมดล้มเหลว หากฉันใส่ความสามารถในการใช้งานและเริ่มจากตัวสำรวจมันใช้งานได้ ไหนดีสำหรับฉัน มีเพียงฉันเท่านั้นที่ไม่ชอบการตั้งค่าสถานะความเข้ากันได้ทุกครั้งหลังจากสร้าง ดังนั้นคำถาม ... :)
โกง

1
@CodyGray - ดีฉันสามารถให้คุณเรื่องราวทั้งหมด แต่ฉันสงสัยว่ามันจะพอดีกับกล่อง commitions ที่นี่ (หรือสามของพวกเขา) ดังนั้นฉันจะปล่อยให้คำถามเปิดในขณะที่อีกต่อไป ...
Rook

1
อาฉันรู้ว่าฉันจำได้ว่าอ่านในบทความ ในที่สุดฉันก็พบมันและโพสต์คำตอบสำหรับลูกหลาน :-) คุณสามารถเพิกเฉยต่อความโกรธของฉันได้ แต่ฉันสงสัยว่าคุณจะพบวิธีการอื่น
โคดี้เกรย์

คำตอบ:


29

ฉันไม่รู้เครื่องมือที่อนุญาตให้ตั้งค่าหรือเปลี่ยนค่าสถานะความเข้ากันได้ของแอปพลิเคชัน

อย่างไรก็ตามค่าสถานะที่เข้ากันได้ของแอปพลิเคชันจะถูกเก็บไว้ในรีจิสทรี (ผู้ใช้หรือส่วนของระบบ):

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"

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการตั้งค่าสถานะที่มีอยู่ดูโพสต์บล็อกการเรียกใช้แอปพลิเคชันในฐานะผู้ดูแลระบบหรือในโหมดความเข้ากันได้เล่นแอพลิเคชันเป็นผู้ดูแลระบบหรือในโหมดที่เข้ากัน


1
อืมมันอาจจะ (!) ใช้งานได้ ... บรรทัดที่สาม "reg.exe ... " ... ดังนั้นถ้าฉันตั้งค่าไว้สำหรับ exe ทุกตัวที่ฉันมีในบางไดเรกทอรี ถ้ามันถูกสร้างใหม่?
โกง

2
พฤติกรรมปกติของการคลิกขวา> คุณสมบัติ> ความเข้ากันได้คือการตั้งค่าคีย์ภายใต้ HKCU ยกเว้นว่ากดปุ่ม "เปลี่ยนการตั้งค่าสำหรับผู้ใช้ทั้งหมด" จากนั้นจะถูกตั้งค่าภายใต้ HKLM สำหรับผู้ใช้ทั้งหมดและไม่สามารถเปลี่ยนแปลงได้ผ่านทางกล่องโต้ตอบ
Mike Brown

17

3
+1 การเริ่มต้น. exe ผ่าน. bat ดูเหมือนจะเป็นวิธีแก้ปัญหาที่บุกรุกน้อยที่สุด
Wolf

11

คำตอบของ Robert นั้นตรงจุด หากต้องการขยายให้กว้างขึ้นและตอบคำถามของ OP เกี่ยวกับการตั้งค่าโหมดที่หลากหลาย ...

หากคุณมีโฟลเดอร์ที่เต็มไปด้วยไฟล์. exe คุณสามารถทำสิ่งนี้ได้:

for %x in ("*.exe") do reg.exe Add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%~fx" /d "WINXPSP3"

ตัวอย่างนี้ใช้ HKCU แทน HKLM ให้แน่ใจว่าได้เลือกสิ่งที่คุณต้องการจริงๆ

หากต้องการลบการตั้งค่าด้วยการแจ้งให้ยืนยันสำหรับแต่ละรายการ:

for %x in ("*.exe") do reg.exe Delete "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%~fx"

เพิ่ม /fไปยังจุดสิ้นสุดหากคุณไม่ต้องการให้ระบบทำการยืนยัน

(ถ้าคุณโหวตคำตอบนี้โปรดลงคะแนนให้ Robert ด้วย!)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.