मैं कमांड लाइन से निष्पादन योग्य के लिए संगतता मोड कैसे सेट कर सकता हूं?


21

क्या XP विकल्प के साथ संगतता सेट करने का एक तरीका है (राइट क्लिक / गुण / अनुकूलता ... कि एक, हाँ :) कमांड लाइन से एक निष्पादन योग्य?

या बेहतर अभी तक, क्या एक पूरी निर्देशिका (निर्देशिका में निष्पादन योग्य) के लिए अनुकूलता सेट करने का एक तरीका है, ताकि हर निष्पादन योग्य जो पहले से संकलित / निर्माण करता है, उस पर "ध्वज" है?


1
@ कोडीग्रे - क्योंकि मैं पुराने संकलक IDE (Win95 से) का उपयोग कर रहा हूँ; एक नए में बदलने से कुछ लागतों को प्रेरित किया जाएगा जो हम अभी के लिए तैयार नहीं हैं। अगर मैं इसका निर्माण करता हूं और इसे IDE से शुरू करता हूं, तो पूरी चीज क्रैश हो जाती है। अगर मैं कम्पैटिबिलिटी डालता हूं और इसे एक्सप्लोरर से शुरू करता हूं, तो यह काम करता है। जो मेरे लिए काफी अच्छा है। केवल निर्माण के बाद हर बार संगतता ध्वज लगाना मुझे पसंद नहीं है। इसलिए सवाल ... :)
Rook

1
@ कोडीग्रे - ठीक है, मैं आपको पूरी कहानी दे सकता हूं, लेकिन मुझे संदेह है कि यह यहां (या उनमें से तीन) बॉक्स में फिट होगा, इसलिए मैं सिर्फ सवाल को थोड़ी देर के लिए खुला छोड़ दूंगा ...
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 के तहत सेट किया गया है, और इसे संवाद के माध्यम से नहीं बदला जा सकता है।
माइक ब्राउन

17

3
+1। .B। के माध्यम से .exe शुरू करना सबसे कम आक्रामक समाधान लगता है
वुल्फ

11

रॉबर्ट का जवाब हाजिर था। इस पर थोड़ा विस्तार करना, और मोड एन मास्क लगाने के बारे में ओपी के प्रश्न का उत्तर देना ...

यदि आपके पास .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यदि आप पुष्टि के लिए संकेत नहीं करना चाहते हैं तो अंत में जोड़ें ।

(यदि आप इस जवाब को वोट देते हैं, तो कृपया रॉबर्ट को भी वोट दें!)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.