เนื่องจาก Windows 8.1 ไม่อนุญาตการรองรับ DPI สูง "Windows XP style" ทั้งระบบฉันจะทำให้แอป Microsoft Management Console (mmc.exe) high-DPI ทราบได้อย่างไร ไม่มีรายการเมนูบริบท "แก้ปัญหาความเข้ากันได้"
เนื่องจาก Windows 8.1 ไม่อนุญาตการรองรับ DPI สูง "Windows XP style" ทั้งระบบฉันจะทำให้แอป Microsoft Management Console (mmc.exe) high-DPI ทราบได้อย่างไร ไม่มีรายการเมนูบริบท "แก้ปัญหาความเข้ากันได้"
คำตอบ:
แท็บความเข้ากันได้ถูกซ่อนไว้สำหรับไฟล์ระบบดังนั้นเพื่อทำซ้ำฟังก์ชั่นของช่องทำเครื่องหมาย "ปิดการใช้งานการปรับขนาดจอแสดงผลในการตั้งค่า 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 ง่ายขึ้นมาก
ใน Windows 10 คุณสามารถบรรลุผลเช่นเดียวกันโดยทำ:
1: ขึ้นอยู่กับสิ่งที่คุณมี (หากต้องการค้นหาให้กด Windows + R พิมพ์ "winver" กด Enter) อย่างใดอย่างหนึ่ง:
ป้อนระดับการปรับด้วยตนเองแม้ว่าจะอยู่ในรายการแบบเลื่อนลง คุณจะรู้ว่าคุณทำอย่างถูกต้องหากคุณได้รับแจ้งให้ออกจากระบบเพื่อให้การตั้งค่ามีผล
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 (บริการผู้จัดการอุปกรณ์ ฯลฯ ) และตอนนี้พวกเขาจะใหญ่ขึ้นและคมชัดขึ้น