ฉันจะทำให้ Microsoft Management Console เป็นที่รู้จักในระดับ DPI สูงใน Windows 8.1 ได้อย่างไร


16

เนื่องจาก Windows 8.1 ไม่อนุญาตการรองรับ DPI สูง "Windows XP style" ทั้งระบบฉันจะทำให้แอป Microsoft Management Console (mmc.exe) high-DPI ทราบได้อย่างไร ไม่มีรายการเมนูบริบท "แก้ปัญหาความเข้ากันได้"

คำตอบ:


20

แท็บความเข้ากันได้ถูกซ่อนไว้สำหรับไฟล์ระบบดังนั้นเพื่อทำซ้ำฟังก์ชั่นของช่องทำเครื่องหมาย "ปิดการใช้งานการปรับขนาดจอแสดงผลในการตั้งค่า DPI สูง" คุณจะต้องเพิ่มสิ่งต่อไปนี้ลงในรีจิสทรี:

Windows Registry Editor Version 5.00

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

สิ่งนี้มีประโยชน์เพิ่มเติมในการทำให้ MMC สแน็ปอินเช่นตัวแก้ไขนโยบายกลุ่มใช้การปรับขนาดดั้งเดิมแทนเวอร์ชันที่ไม่ชัดเจน

คุณสามารถบันทึกเป็นไฟล์. reg และนำเข้าหรือใช้คำสั่งต่อไปนี้ในกล่องโต้ตอบ Run:

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"

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

สำหรับการอ้างอิงเมื่อตรวจสอบทั้งสองสตริงแล้ว "~ 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\""

การใช้ตัวเลือกนั้นในโฟลเดอร์ระดับรากเช่น Program Files เป็นความคิดที่ไม่ดีเพราะคุณจะสร้างรายการรีจิสทรีหลายร้อยรายการ แต่สำหรับบางกรณีจำเป็นอย่างยิ่งโดยเฉพาะอย่างยิ่งสำหรับ Process Explorer และยูทิลิตี้ Sysinternals อื่น ๆ หรือยูทิลิตี้ Nirsoft ซึ่งทั้งหมดทำงานได้ดีมากเมื่อปิดการใช้งาน DPI แต่ไม่มีตัวเลือกที่ระบุไว้อย่างชัดเจนในรายการ

ชุดรหัสสุดท้ายใช้คำสั่งเริ่มต้นภายในเพื่อให้หน้าต่างพรอมต์คำสั่งออกไปให้ไกลที่สุดโดยเร็วที่สุด สัญลักษณ์ @ ถูกใช้เพื่อป้องกันการสะท้อนกลับคำสั่งในเอาต์พุตและการเปลี่ยนเส้นทาง 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 ไม่ได้อยู่ในพา ธ ของคุณคุณสามารถเพิ่มตำแหน่งของมันด้านบนหรือเพิ่มโฟลเดอร์ลงในพา ธ ของคุณในกล่องโต้ตอบ System Environment Variables หากต้องการเปิดหน้าต่างดังกล่าวคุณสามารถใช้คำสั่งrundll32 sysdm.cpl,EditEnvironmentVariables

อาจทำให้อาร์กิวเมนต์นั้นดูสง่างามกว่าการเพิ่มรีจิสตรีคีย์โดยการสร้างไฟล์. reg ตอนรันไทม์และนำเข้ามันเงียบ ๆ ด้วยreg import /sตัวเลือกที่ไม่มีเอกสาร แต่จากประสบการณ์ของฉันการเขียนไฟล์ใด ๆ ที่รันไทม์ทำให้เกิดสัญญาณเตือนภัยทุกประเภทด้วยผลิตภัณฑ์รักษาความปลอดภัยเช่น COMODO Internet Securita รุ่นที่เทียบเท่าจาก Panda, Norton เป็นต้นและทุกอย่างที่ใช้รูปแบบ HIPS ฉันไม่เห็นว่าจำเป็นต้องทำเช่นนั้นเมื่อการทำงานด้านบนใช้งานได้ดีโดยเฉพาะถ้าคุณใช้สิ่งนี้กับคอมพิวเตอร์หลายเครื่องหรือแบ่งปันและไม่ต้องการสร้างการเตือนที่ผิดพลาดสำหรับผู้อื่น

อย่างไรก็ตามหากคุณใช้ nircmd อยู่แล้วคุณควรใช้regsetvalคำสั่งแทนreg addส่วนขยายเชลล์. exe และ. msi ตัวเลือกโฟลเดอร์ยังคงต้องวนซ้ำในรายชื่อไดเรกทอรีเพื่อเพิ่มแต่ละรายการดังนั้นจึงไม่สามารถใช้งานได้สำหรับรายการเหล่านั้น PowerShell และ VBScript เป็นตัวเลือก แต่ความพร้อมใช้งานขึ้นอยู่กับรุ่นของ Windows และโฮสต์ของตัวแปรอื่น ๆ จากมุมมองด้านความปลอดภัย VBScript มีชื่อเสียงว่าเป็นเวกเตอร์ที่มีช่องโหว่โดยเฉพาะอย่างยิ่งเมื่อดาวน์โหลดจากอินเทอร์เน็ตหรือแชร์บนเครือข่ายและสคริปต์ PS1 จะไม่ทำงานเลย

แจ้งให้เราทราบหากคุณสังเกตเห็นสิ่งแปลก ๆ เมื่อใช้รหัสนั้นเนื่องจากยังคงทำงานอยู่ ที่ถูกกล่าวว่ามันควรทำให้การตั้งค่า DPI ของ Windows 8.1 ง่ายขึ้นมาก


สคริปต์ที่ยอดเยี่ยม !! สิ่งที่ฉันหวังไว้อย่างแน่นอน
user20939

3
น่าเสียดายที่นี่ดูเหมือนจะไม่ช่วยใน Windows 10 วิธีนี้ใช้ได้กับแอพพลิเคชั่นอื่น แต่ไม่ใช่สำหรับ mmc.exe
AnT

ใช้งานได้สำหรับฉัน ไฟล์. reg ต้องการการรีบูตใน Windows 10
joshudson

ไม่ทำงานกับ windows 10 การรีบูทไม่ช่วย แอปอื่น ๆ เช่นตัวจัดการ ext2fsd ยังทำงานกับการแก้ไขนี้ เหตุการณ์ mmc.exe ไม่มีแท็บความเข้ากันได้ในคุณสมบัติ
baldrs

@ baldrs นี่ดูเหมือนจะใช้ได้สำหรับฉัน สิ่งหนึ่งที่ควรทราบก็คือ Windows 10 จะทำบางสิ่งที่เกี่ยวกับการปรับขนาดจอแสดงผลหากคุณไม่ได้ใช้จอภาพความละเอียดเดียวกันในสภาพแวดล้อมหลายจอ ตรวจสอบเพื่อให้แน่ใจว่าจอแสดงผลทั้งหมดถูกตั้งค่าเป็นความละเอียดดั้งเดิมจากนั้นปรับสเกลเป็น 'แนะนำ' หรือ 200% ดูเหมือนว่า Windows 10 จะไม่ปรับขนาดภายในแตกต่างกันไปขึ้นอยู่กับจอแสดงผลที่หน้าต่างเปิดอยู่ดังนั้นจึงเลือกจอภาพหลักที่ดีที่สุดที่ฉันสามารถบอกได้ จอภาพนั้นดูเหมือนจะเป็นตัวกำหนดสเกลอื่น ๆ ทั้งหมด ฉันมีจอแล็ปท็อปขนาด 4k ภายนอก 4k และ FullHD ตัวที่สาม จอภาพที่สามเลือนไปจนถึงตอนนี้
Andrew T Finnell

2

ใน Windows 10 คุณสามารถบรรลุผลเช่นเดียวกันโดยทำ:

1: ขึ้นอยู่กับสิ่งที่คุณมี (หากต้องการค้นหาให้กด Windows + R พิมพ์ "winver" กด Enter) อย่างใดอย่างหนึ่ง:

  • ก่อนสร้าง 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 (บริการผู้จัดการอุปกรณ์ ฯลฯ ) และตอนนี้พวกเขาจะใหญ่ขึ้นและคมชัดขึ้น

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