DPI स्केलिंग विंडोज 8.1 में कमांड लाइन के माध्यम से


14

मैं अपने मशीन पर डीपीआई स्केल को जल्दी और आसानी से बदलने के लिए एक कीबोर्ड शॉर्टकट बनाना चाहता हूं, कीबोर्ड शॉर्टकट का पता लगाने के लिए एक छोटा मैक्रो बनाने के लिए।

विंडोज 8.1 में, डेस्कटॉप डिस्प्ले डीपीआई स्केल को नियंत्रण कक्ष (नीचे चित्र) के माध्यम से सेट किया जा सकता है, तुरंत प्रभाव। वैकल्पिक रूप से, स्केल मैन्युअल रूप से रजिस्ट्री में सेट किया जा सकता है, लेकिन ऐसा करने के लिए उपयोगकर्ता को साइन इन और आउट या मशीन को पुनः आरंभ करने की आवश्यकता होती है ताकि यह प्रभावी हो सके (और केवल "मेरे सभी डिस्प्ले के लिए एक स्केलिंग स्तर" का अनुकरण करने के लिए काम करता है) ।

मैं कमांड लाइन के माध्यम से DPI स्केल कैसे सेट कर सकता हूं, या अन्यथा प्रोग्रामेटिक रूप से?

http://puu.sh/93YLV.jpg


क्या आपने रजिस्ट्री परिवर्तन करने की कोशिश की है, एक्सप्लोरर प्रक्रिया को मारकर, फिर इसे फिर से शुरू कर रहे हैं। क्योंकि सभी जीयूआई विधि सिद्धांत में होगा।
रामहुंड २ Ram

@ रामदूत नहीं किस्मत। GUI इंटरफ़ेस निश्चित रूप से सेटिंग को लागू करने के लिए डेस्कटॉप को रीफ्रेश करने के लिए कुछ कर रहा है, लेकिन मुझे यकीन नहीं है कि क्या है और इसके बारे में कुछ भी पता लगाने में सक्षम नहीं है।
FThompson

क्या आप सुनिश्चित हैं कि परिवर्तन तुरंत हो सकते हैं? मुझे यह कहते हुए एक संवाद मिलता है कि "आपको इन परिवर्तनों को लागू करने के लिए अपने कंप्यूटर से साइन आउट करना होगा"
विनायक

@ विनायक, उपरोक्त संवाद द्वारा लागू किए जाने पर तुरंत परिवर्तन होते हैं। मुझे याद है कि तत्काल-अनुप्रयोग मानक विंडोज 8 पर विंडोज 8.1 के लिए नया है, इसलिए यदि आप रुचि रखते हैं तो यह आपके मशीन और खदान के बीच के अंतर पर शोध कर रहे हैं, जो शुरू करने के लिए एक जगह हो सकती है।
FThompson

@ वालकैन वास्तव में, मैं विंडोज 8.1 का उपयोग कर रहा हूं। हालाँकि, मैं Let me choose one scaling level...चेकबॉक्स पर क्लिक करने के बाद बदलाव करने की कोशिश कर रहा था क्योंकि ऊपर स्लाइडर यह मेरी नोटबुक पर आकर्षित है।
विनायक

जवाबों:


9

स्वतंत्र स्केलिंग की निगरानी के लिए सही रजिस्ट्री कुंजी HKCU:\Control Panel\Desktopमान के साथ है LogPixels। सभी DPI से संबंधित रजिस्ट्री सेटिंग्स के बारे में अधिक जानकारी यहाँ पाई जा सकती है: http://technet.microsoft.com/en-us/library/dn528846.aspx#system जब आप प्रत्येक डिस्प्ले पर अलग स्केलिंग सक्षम करते हैं तो केस की जानकारी भी होती है। ।

मैंने एक छोटी पॉवरशेल स्क्रिप्ट लिखी है जो मौजूदा स्केलिंग के आधार पर सभी डिस्प्ले के लिए डीपीआई स्केलिंग में बदलाव करती है और यूजर लॉगऑफ करती है इसलिए मुझे बस स्क्रिप्ट को निष्पादित करना होगा जब मैंने अपने डिवाइस को एक अलग मॉनिटर पर रखा।

cd 'HKCU:\Control Panel\Desktop'
$val = Get-ItemProperty -Path . -Name "LogPixels"
if($val.LogPixels -ne 96)
{
    Write-Host 'Change to 100% / 96 dpi'
    Set-ItemProperty -Path . -Name LogPixels -Value 96
} else {
    Write-Host 'Change to 150% / 144 dpi'
    Set-ItemProperty -Path . -Name LogPixels -Value 144
}

logoff;exit

मुझे लगता है कि आप TechNet लेख की जानकारी के साथ इसे अपनी आवश्यकताओं के लिए संशोधित कर सकते हैं।


3
जल्द जवाब नहीं देने के लिए मेरी माफी; महान समाधान! दुर्भाग्य से, हालांकि, LogPixelsमूल्य का उपयोग केवल तब लागू होता है जब "मुझे अपने सभी डिस्प्ले के लिए एक स्केलिंग स्तर चुनने दें" चेकबॉक्स की जाँच की जाती है, कुछ मैंने तब देखा था जब मैं रजिस्ट्री मानों के साथ खिलवाड़ करता था लेकिन लिंक किए गए टेक्नेट लेख द्वारा भी इसकी पुष्टि की जाती है। इसके अलावा, आपके समाधान में उपयोगकर्ता के लॉगआउट की आवश्यकता होती है; DPI उपयोगकर्ता को बिना लॉग आउट किए और फिर से वापस किए बिना अपडेट नहीं किए जाते हैं। इन दो कमियों के बीच, आपका समाधान मेरे लिए काफी काम नहीं करता है, लेकिन एक महान जवाब के लिए सभी एक ही है।
एफटोमपसन

यह विंडोज 10 पर काम नहीं करता है :(
kokbira

3
@kokbira विंडोज 10 में काम करने के लिए आपको रजिस्ट्री कुंजी सेट करने की आवश्यकता HKCU:\Control Panel\Desktop\Win8DpiScalingहै 1। अन्यथा यह डिफ़ॉल्ट स्केलिंग कारक का उपयोग करेगा और मूल्य को अनदेखा करेगा LogPixels
फ्लाइंगफोक्स

1
अगर DPI स्केल प्रत्येक मॉनिटर के लिए अलग है, तो HKCU:\Control Panel\Desktopलुक के बजायHKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI
Shayan

1
और यहाँ भीHKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\GraphicsDrivers\ScaleFactors
Shayan

2

स्क्रीन रिज़ॉल्यूशन को बदलने के लिए PowerShell स्क्रिप्ट है जो मदद कर सकती है। मुझे कोई अंदाजा नहीं है कि अगर यह बदलाव विंडोज 8.1 पर तत्काल होता है, लेकिन थोड़ी सी किस्मत के साथ यह स्क्रिप्ट उसी एपीआई का उपयोग कर सकती है जो कंट्रोल पैनल एप्लेट द्वारा उपयोग किया जाता है।

पूरी Set-ScreenResolution.ps1स्क्रिप्ट स्क्रिप्ट रिपॉजिटरी में उपलब्ध है , लेकिन यहां पुन: पेश करने के लिए बहुत लंबा है।

लेखक द्वारा इसका विवरण लेख में पाया जा सकता है:
अरे, स्क्रिप्टिंग गाइ! मैं Windows PowerShell के माध्यम से अपने डेस्कटॉप मॉनिटर रिज़ॉल्यूशन को कैसे बदल सकता हूं?

इसका उपयोग करने के बारे में कुछ जानकारी लेख में मिल सकती है:
पॉवरशेल के साथ स्क्रीन रिज़ॉल्यूशन बदलना


ये संसाधन DPI के बजाय स्क्रीन रिज़ॉल्यूशन को बदलने के लिए अधिक उन्मुख दिखते हैं। मैंने आपके द्वारा दिए गए लिंक को देखा, लेकिन मुझे केवल चौड़ाई और ऊँचाई सेट करने के लिए विकल्प दिखते हैं, और DPI का कोई उल्लेख नहीं है। क्या मैं आपके उत्तर को गलत समझ रहा हूं?
FThompson

रिज़ॉल्यूशन बदलने से डीपीआई और इसके विपरीत बदल जाएगा। आप विभिन्न डीपीआई सेटिंग्स के तहत स्क्रीन रिज़ॉल्यूशन का पता लगा सकते हैं, फिर उपरोक्त स्क्रिप्ट का उपयोग करके इन रिज़ॉल्यूशन में बदल सकते हैं।
harrymc 17

1
रिज़ॉल्यूशन बदलते समय DPI को बदल देता है, यह काफी समान नहीं है क्योंकि Win8 में पेश किया गया DPI स्केलिंग (शायद यह अन्य ऑपरेटिंग सिस्टम पर अलग है?) इसका एक उदाहरण यह है कि DPI स्केलिंग को सेट किए बिना क्या होता है, डेस्कटॉप और इसके आइकन हमेशा आकार और उपस्थिति में समान होते हैं, जबकि यदि रिज़ॉल्यूशन को बदल दिया जाता है, तो डेस्कटॉप और इसके आइकन आकार के अनुसार बदलते हैं।
FThompson

यह विंडोज 8.1 में पेश की गई नई डीपीआई-जागरूक तकनीक के कारण है। मुझे इसके API के बारे में कोई जानकारी नहीं मिल पाई है - वर्तमान में केवल रजिस्ट्री सेटिंग उपलब्ध है, जो आप नहीं देख रहे हैं।
harrymc

एक्सप्लोरर डीपीआई से अवगत है इसलिए डेस्कटॉप आइकन अपने आकार को बनाए रखते हैं, लेकिन बहुत कम अन्य कार्यक्रम हैं। अधिकांश उत्पादों के लिए, रिज़ॉल्यूशन बदलना उतना ही अच्छा है जितना कि डीपीआई बदलना।
harrymc
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.