मैं विंडोज 8.1 में Microsoft प्रबंधन कंसोल को उच्च-डीपीआई से कैसे अवगत करा सकता हूं?


16

चूंकि विंडोज 8.1 सिस्टम-वाइड "विंडोज एक्सपी स्टाइल" उच्च डीपीआई समर्थन की अनुमति नहीं देता है, मैं Microsoft प्रबंधन कंसोल एप्लिकेशन (mmc.exe) उच्च-डीपीआई से कैसे अवगत करा सकता हूं? इसके लिए कोई "समस्या निवारण संगतता" संदर्भ मेनू आइटम नहीं है।

जवाबों:


20

सिस्टम टैब के लिए संगतता टैब छिपा हुआ है, इसलिए "उच्च डीपीआई सेटिंग्स पर स्केलिंग को अक्षम करें" चेकबॉक्स की कार्यक्षमता को दोहराने के लिए आप निम्न रजिस्ट्री में जोड़ देंगे:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Windows\\System32\\mmc.exe"="~ HIGHDPIAWARE"

इससे ग्रुप पॉलिसी एडिटर की तरह सभी MMC स्नैप-इन बनाने का अतिरिक्त लाभ है, धुंधले rasterized संस्करण के बजाय देशी स्केलिंग का उपयोग करें।

आप .reg फ़ाइल के रूप में सहेज सकते हैं और इसे आयात कर सकते हैं, या रन डायलॉग में निम्न कमांड पेस्ट कर सकते हैं:

reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\Windows\System32\mmc.exe" /f /t REG_SZ /d "~ HIGHDPIAWARE"

यदि आप स्वयं को उस वर्कअराउंड का उपयोग करते हुए पाते हैं, तो आप इसे .exe फ़ाइलों के लिए राइट क्लिक संदर्भ मेनू में जोड़ना चाह सकते हैं। आप इसे भी .msi फ़ाइलों में जोड़ सकते हैं क्योंकि संगतता टैब उन फ़ाइलों के लिए भी गायब है:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\exefile\shell\disabledpi]

[HKEY_CLASSES_ROOT\exefile\shell\disabledpi]
@="Disable DP&I Scaling"

[HKEY_CLASSES_ROOT\exefile\shell\disabledpi\command]
@="cmd /c @reg add \"HKCU\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /f /t REG_SZ /d \"~ HIGHDPIAWARE\">nul"
"IsolatedCommand"="cmd /c @reg add \"HKCU\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /f /t REG_SZ /d \"~ HIGHDPIAWARE\">nul"

[-HKEY_CLASSES_ROOT\Msi.Package\shell\disabledpi]

[HKEY_CLASSES_ROOT\Msi.Package\shell\disabledpi]
@="Disable DP&I Scaling"

[HKEY_CLASSES_ROOT\Msi.Package\shell\disabledpi\command]
@="cmd /c @reg add \"HKCU\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /f /t REG_SZ /d \"~ HIGHDPIAWARE\">nul"
"IsolatedCommand"="cmd /c @reg add \"HKCU\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /f /t REG_SZ /d \"~ HIGHDPIAWARE\">nul"

चूँकि "Run as Administrator" और "DPI स्केलिंग को अक्षम करें" सेटिंग्स को एक साथ संग्रहित किया जाता है, जो कि पहले से सेट की गई फाइल पर उस कमांड को इनवॉइस के रूप में चलाने के लिए क्लीयर होगा और उस स्थान पर DPI स्केलिंग फ़्लैग को सेट करेगा। यह केवल उन फ़ाइलों को प्रभावित करता है जिन्हें आपने मैन्युअल रूप से बॉक्स के लिए चेक किया है, न कि उनके अनुरोध में सही requestExecutionLevel के साथ।

केवल संदर्भ के लिए, जब दोनों को स्ट्रिंग की जांच की जाती है, तो "~ RUNASADMIN HIGHDPIAWARE" है, लेकिन मैं इसे संदर्भ मेनू विकल्प में नहीं डालूंगा क्योंकि यह संदर्भ मेनू पर एक बार उपयोग के लिए पहले से ही उपलब्ध है और यह एक अच्छा विचार नहीं है। व्यवस्थापक टोकन इतनी आसानी से आवश्यक।

यदि आप किसी विशिष्ट फ़ोल्डर में निष्पादन योग्य और इंस्टॉलर फ़ाइलों के लिए DPI स्केलिंग को अक्षम करने का विकल्प चाहते हैं, तो आप निम्न .reg आयात का उपयोग कर सकते हैं।

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\Directory\shell\disabledpi]

[HKEY_CLASSES_ROOT\Directory\shell\disabledpi]
@="Disable DP&I Scaling"

[HKEY_CLASSES_ROOT\Directory\shell\disabledpi\command]
@="cmd /c @start /min cmd /c for /f \"usebackq delims=\" %%i in (`dir /b /s \"%1\\*.exe\" \"%1\\*.msi\"`) do @reg add \"HKCU\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%%i\" /f /t REG_SZ /d \"~ HIGHDPIAWARE\""
"IsolatedCommand"="cmd /c @start /min cmd /c for /f \"usebackq delims=\" %%i in (`dir /b /s \"%1\\*.exe\" \"%1\\*.msi\"`) do @reg add \"HKCU\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%%i\" /f /t REG_SZ /d \"~ HIGHDPIAWARE\""

रूट-स्तरीय फ़ोल्डर जैसे प्रोग्राम फाइल्स पर उस विकल्प का उपयोग करना एक बुरा विचार है क्योंकि आप सैकड़ों रजिस्ट्री प्रविष्टियाँ बनाएंगे। लेकिन कुछ मामलों के लिए यह आवश्यक है, विशेष रूप से प्रोसेस एक्सप्लोरर और बाकी Sysinternals उपयोगिताओं, या Nirsoft उपयोगिताओं के लिए, जिनमें से सभी डीपीआई स्केलिंग अक्षम के साथ बहुत अच्छे से चलते हैं, लेकिन उनके अभिव्यक्तियों में स्पष्ट रूप से निर्दिष्ट विकल्प नहीं है।

कोड का अंतिम बैच आंतरिक प्रारंभ कमांड का उपयोग करता है ताकि कमांड प्रॉम्प्ट विंडो को जल्दी से जल्दी बाहर निकाला जा सके और इसे कम से कम रखा जाए क्योंकि यह फ़ोल्डर की सामग्री को पार्स करता है। @ प्रतीक का उपयोग आउटपुट में कमांड को वापस गूंजने से रोकने के लिए किया जाता है, और आउटपुट को छुपाने के लिए nul पुनर्निर्देशन का उपयोग किया जाता है "ऑपरेशन सफलतापूर्वक पूरा हुआ।" प्रत्येक प्रविष्टि के लिए चूंकि यह कभी नहीं बदलता है।

यदि आपके पास उत्कृष्ट nircmd टूल है तो आप कमांड प्रॉम्प्ट विंडो के संक्षिप्त फ्लैश को पूरी तरह से छिपा सकते हैं:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\exefile\shell\disabledpi]

[HKEY_CLASSES_ROOT\exefile\shell\disabledpi]
@="Disable DP&I scaling"

[HKEY_CLASSES_ROOT\exefile\shell\disabledpi\command]
@="nircmd.exe execmd reg add \"HKCU\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /f /t REG_SZ /d \"~ HIGHDPIAWARE\""
"IsolatedCommand"="nircmd.exe execmd reg add \"HKCU\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /f /t REG_SZ /d \"~ HIGHDPIAWARE\""

[-HKEY_CLASSES_ROOT\Msi.Package\shell\disabledpi]

[HKEY_CLASSES_ROOT\Msi.Package\shell\disabledpi]
@="Disable DP&I scaling"

[HKEY_CLASSES_ROOT\Msi.Package\shell\disabledpi\command]
@="nircmd.exe execmd reg add \"HKCU\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /f /t REG_SZ /d \"~ HIGHDPIAWARE\""
"IsolatedCommand"="nircmd.exe execmd @reg add \"HKCU\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /f /t REG_SZ /d \"~ HIGHDPIAWARE\""

[-HKEY_CLASSES_ROOT\Directory\shell\disabledpi]

[HKEY_CLASSES_ROOT\Directory\shell\disabledpi]
@="Disable DP&I scaling"

[HKEY_CLASSES_ROOT\Directory\shell\disabledpi\command]
@="nircmd.exe execmd for /f \"usebackq delims=\" %%i in (`dir /b /s \"%1\\*.exe\" \"%1\\*.msi\"`) do @reg add \"HKCU\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%%i\" /f /t REG_SZ /d \"~ HIGHDPIAWARE\""
"IsolatedCommand"="nircmd.exe execmd for /f \"usebackq delims=\" %%i in (`dir /b /s \"%1\\*.exe\" \"%1\\*.msi\"`) do @reg add \"HKCU\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%%i\" /f /t REG_SZ /d \"~ HIGHDPIAWARE\""

यदि nircmd.exe आपके पथ में नहीं है, तो आप सिस्टम वातावरण संस्करण संवाद में या तो इसके स्थान को ऊपर जोड़ सकते हैं या इसके फ़ोल्डर को अपने पथ में जोड़ सकते हैं। उस विंडो को लाने के लिए आप कमांड का उपयोग कर सकते हैंrundll32 sysdm.cpl,EditEnvironmentVariables

यह तर्क दिया जा सकता है कि रनवे पर एक .reg फ़ाइल बनाकर और इसे अनजाने reg import /sविकल्प के साथ चुपचाप आयात करके रजिस्ट्री कुंजियों को जोड़ना अधिक सुरुचिपूर्ण होगा । लेकिन मेरे अनुभव में, रनटाइम पर किसी भी फाइल को लिखना सिक्योरिटी प्रोडक्ट्स जैसे COMODO Internet Securita, इसके समकक्ष संस्करण पांडा, नॉर्टन, आदि के साथ सभी प्रकार के अलार्म को बढ़ाता है और एक HIPS मॉडल पर आधारित कुछ भी। मुझे यह करने की आवश्यकता नहीं है कि जब उपर्युक्त ठीक काम करता है, खासकर यदि आप इसे कई कंप्यूटरों पर उपयोग कर रहे हैं या इसे साझा कर रहे हैं और किसी और के लिए गलत अलार्म नहीं बनाना चाहते हैं।

हालाँकि, यदि आप पहले से ही nircmd का उपयोग कर रहे हैं, तो यह .exe और .msi शेल एक्सटेंशन के regsetvalबजाय इसके कमांड का उपयोग करने के लिए समझ में आएगा reg add। फ़ोल्डर विकल्प को अभी भी प्रत्येक प्रविष्टि को जोड़ने के लिए निर्देशिका लिस्टिंग पर पुनरावृति करने की आवश्यकता होगी ताकि यह उन लोगों के लिए काम न करे। PowerShell और VBScript विकल्प हैं, लेकिन उनकी उपलब्धता विंडोज के संस्करण और अन्य चर के होस्ट पर निर्भर करती है। सुरक्षा के दृष्टिकोण से, VBScript की विशेष रूप से इंटरनेट से डाउनलोड किए जाने या नेटवर्क पर साझा किए जाने पर शोषित वेक्टर के रूप में एक प्रतिष्ठा है, और PS1 स्क्रिप्ट दूरस्थ हस्ताक्षरित स्क्रिप्ट की अनुमति देने के लिए पावरशेल की निष्पादन नीति को स्पष्ट रूप से सेट किए बिना नहीं चलेगी।

मुझे पता है अगर आप उस कोड का उपयोग करते समय कुछ भी अजीब देखते हैं क्योंकि यह अभी भी प्रगति पर है। कहा जा रहा है कि यह विंडोज 8.1 की डीपीआई सेटिंग्स को बहुत आसान बनाना चाहिए।


बहुत बढ़िया स्क्रिप्ट !! बिल्कुल वही जिसकी मुझे उम्मीद थी।
user20939

3
दुर्भाग्य से, यह विंडोज 10 के तहत मदद नहीं करता है। यह विधि अन्य अनुप्रयोगों के लिए काम करती है, लेकिन mmc.exe के लिए नहीं।
एनटी

मेरे लिये कार्य करता है।
.Reg

विंडोज़ के साथ काम नहीं करता है। रिबूट मदद नहीं करता है। इसके अलावा अन्य ऐप जैसे ext2fsd मैनेजर इस फिक्स के साथ काम करते हैं। mmc.exe इवेंट में संपत्तियों में कोई संगतता टैब नहीं है
बजे

@baldrs यह मेरे लिए काम करने लगा। ध्यान देने वाली एक बात यह है कि यदि आप मल्टी-डिस्प्ले वातावरण में समान रिज़ॉल्यूशन मॉनिटर का उपयोग नहीं कर रहे हैं, तो विंडोज 10 डिस्प्ले स्केलिंग के साथ कुछ वास्तव में बिज़ारे करता है। यह सुनिश्चित करने के लिए जांचें कि सभी डिस्प्ले देशी रिज़ॉल्यूशन पर सेट किए गए हैं, फिर 'अनुशंसित' या 200% तक स्केल। ऐसा लगता है कि विंडोज 10 आंतरिक रूप से अलग-अलग पैमाने पर प्रदर्शन के आधार पर एक खिड़की पर नहीं होगा, इसलिए यह मुख्य मॉनिटर को सबसे अच्छा बताता है जिसे मैं बता सकता हूं। यह मॉनिटर अन्य सभी स्केलिंग को निर्धारित करता है। मेरे पास 4k लैपटॉप मॉनीटर, 4k एक्सटर्नल और फुलएचडी थर्ड है। तीसरा मॉनिटर तब तक
फ़र्ज़ी

2

विंडोज 10 पर आप एक ही प्रभाव प्राप्त कर सकते हैं:

1: निर्भर करता है कि आपके पास कौन सा निर्माण है (इसे खोजने के लिए, विंडोज + आर मारा, "विजेता" टाइप करें, एंटर दबाएं) या तो:

  • 15019 के निर्माण से पहले: नियंत्रण कक्ष, प्रदर्शन, आइटम का आकार बदलें, एक कस्टम स्केलिंग स्तर सेट करें
  • 15019 या बाद का निर्माण करें: सेटिंग्स, सिस्टम, डिस्प्ले, कस्टम स्केलिंग खोलें

स्केलिंग स्तर को मैन्युअल रूप से दर्ज करें, भले ही यह ड्रॉपडाउन में उपलब्ध हो। यदि आप सेटिंग के प्रभावी होने के लिए साइन आउट करने के लिए कहे गए हैं, तो आपको पता होगा कि आपने इसे सही तरीके से किया है।

2: निम्न को अपने डेस्कटॉप पर एक .reg फ़ाइल में सहेजें और अपनी रजिस्ट्री में सामग्री जोड़ने के लिए इसे डबल क्लिक करें:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide]
"PreferExternalManifest"=dword:00000001

3: निम्न फ़ाइल को इस रूप में सहेजें c:\windows\system32\mmc.exe.manifest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) Microsoft Corporation -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"  xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" manifestVersion="1.0">
<assemblyIdentity
    processorArchitecture="x86"
    version="5.1.0.0"
    name="Microsoft.Windows.MMC"
    type="win32"
/>
<description>Microsoft Management Console</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
        <requestedPrivileges>
            <requestedExecutionLevel
                level="highestAvailable"
                uiAccess="false"
            />
        </requestedPrivileges>
    </security>
</trustInfo>
<asmv3:application>
   <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
        <dpiAware>True/PM</dpiAware>
   </asmv3:windowsSettings>
</asmv3:application>
</assembly>

4: कोई भी MMC विंडो खोलें (सेवाएँ, डिवाइस मैनेजर, आदि) और वे अब बड़ी और तेज हो जाएंगी

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