2011-04-15 15 views
9

हाय मुझे सीएमडी (या वीबीएस/जेएस जैसी किसी भी स्क्रिप्ट) या रजिस्ट्री से क्लीयरटाइप (या "विंडोज़ की उपस्थिति और प्रदर्शन> स्क्रीन फोंट के चिकना किनारों को समायोजित करें" को सक्षम/अक्षम करने की आवश्यकता है) बिना लॉग ऑफ या विंडोज पुनरारंभ करें।विंडोज 7 में साफ़ टाइप टाइप/अक्षम करें

हो सकता है यह केवल एक आवेदन के लिए ClearType को सक्षम

धन्यवाद extention के साथ

उत्तर

2

मेकअप फ़ाइल संभव है। reg इस फ़ाइलों के लिए रजिस्ट्री

Disable_Smooth_edges_of_screen_fonts

[HKEY_CURRENT_USER\Control Panel\Desktop] 
"FontSmoothing"="0" 

Enable_Smooth_edges_of_screen_fonts

[HKEY_CURRENT_USER\Control Panel\Desktop] 
"FontSmoothing"="2" 

आप भी इस मुकाबले cmd यहाँ कर सकते है आदेश के लिए वाक्य रचना

REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f] 

आप logoff चाहिए है प्रभाव है कि आप बदल

2

मैं कैसे रीबूट हो रहा है बिना यह करने के लिए यकीन नहीं है ... के लिए

लेकिन मैंने पाया कि FontSmoothing कुंजियां बदलने था बस पर्याप्त नहीं ...

एक पूर्ण के लिए कैसे पूरी तरह से ClearType और FontSmoothing दूर करने के लिए पर प्रक्रिया, इस बाहर की जाँच:

Completley Disable Font Smoothing and ClearType in Windows 7

2

मेरे लिए निम्नलिखित काम करता है: नियंत्रण कक्ष> सिस्टम> उन्नत सिस्टम सेटिंग्स> अभिभाषक संतुलित> (प्रदर्शन) सेटिंग> दृश्य प्रभाव> 'कस्टम' का चयन करें और सामान नीचे दिए गए लिंक में वर्णित पर सही का निशान हटाएँ

1

लुक 'स्क्रीन फ़ॉन्ट्स के चिकनी किनारों':

http://www.vbforums.com/showthread.php?t=491091

एपीआई कॉलिंग हो सकता है सिस्टम-व्यापी अद्यतन को ट्रिगर करें ताकि परिवर्तन को देखने के लिए आपको लॉगऑफ/लॉगऑन नहीं करना पड़े।

बेशक, यह vb.net तक सीमित नहीं है।

10

विंडोज के तहत स्क्रिप्टिंग का आधुनिक तरीका PowerShell का उपयोग कर रहा है।

#requires -version 2.0 
param([bool]$enable) 

$signature = @' 
[DllImport("user32.dll")] 
public static extern bool SystemParametersInfo(
    uint uiAction, 
    uint uiParam, 
    uint pvParam, 
    uint fWinIni); 
'@ 

$SPI_SETFONTSMOOTHING  = 0x004B 
$SPI_SETFONTSMOOTHINGTYPE = 0x200B 
$SPIF_UPDATEINIFILE  = 0x1 
$SPIF_SENDCHANGE   = 0x2 
$FE_FONTSMOOTHINGCLEARTYPE = 0x2 

$winapi = Add-Type -MemberDefinition $signature -Name WinAPI -PassThru 

if ($enable) 
{ 
    [void]$winapi::SystemParametersInfo($SPI_SETFONTSMOOTHING, 1, 0, $SPIF_UPDATEINIFILE -bor $SPIF_SENDCHANGE) 
    [void]$winapi::SystemParametersInfo($SPI_SETFONTSMOOTHINGTYPE, 0, $FE_FONTSMOOTHINGCLEARTYPE, $SPIF_UPDATEINIFILE -bor $SPIF_SENDCHANGE) 
} 
else 
{ 
    [void]$winapi::SystemParametersInfo($SPI_SETFONTSMOOTHING, 0, 0, $SPIF_UPDATEINIFILE -bor $SPIF_SENDCHANGE) 
} 

, तो किसी कारण से, आप PowerShell का उपयोग नहीं कर सकते हैं, आप WSH में WinAPI कार्यों को निष्पादित करने में DynamicWrapperX की आवश्यकता होगी: निम्न स्क्रिप्ट संस्करण 2.0 है, जो Windows XP SP3 से उपलब्ध है की आवश्यकता है। आप पहली बार तो आप इस VBScript इस्तेमाल कर सकते हैं, लक्षित मशीन पर यह रजिस्टर करने के लिए की आवश्यकता होगी:

Set WinAPI = CreateObject("DynamicWrapperX") 
WinAPI.Register "user32.dll", "SystemParametersInfo", "i=uuuu" 

Const SPI_SETFONTSMOOTHING  = &H004B 
Const SPI_SETFONTSMOOTHINGTYPE = &H200B 
Const SPIF_UPDATEINIFILE  = &H1 
Const SPIF_SENDCHANGE   = &H2 
Const FE_FONTSMOOTHINGCLEARTYPE = &H2 

If WScript.Arguments(0) Then 
    WinAPI.SystemParametersInfo SPI_SETFONTSMOOTHING, 1, 0, SPIF_UPDATEINIFILE Or SPIF_SENDCHANGE 
    WinAPI.SystemParametersInfo SPI_SETFONTSMOOTHINGTYPE, 0, FE_FONTSMOOTHINGCLEARTYPE, SPIF_UPDATEINIFILE Or SPIF_SENDCHANGE 
Else 
    WinAPI.SystemParametersInfo SPI_SETFONTSMOOTHING, 0, 0, SPIF_UPDATEINIFILE Or SPIF_SENDCHANGE 
End If 

दोनों लिपियों एक पैरामीटर स्वीकार करते हैं, 0 का मतलब अक्षम ClearType, 1 साधन सक्षम करें। कोई रीबूट की आवश्यकता नहीं है।

+0

क्या मैं इसे कॉपी करता हूं और बस डालें और एंटर दबाएं या क्या मुझे इसे कुछ पावरहेल निष्पादन योग्य स्क्रिप्ट टेक्स्ट फ़ाइल में सहेजने और डबल-क्लिक करने की आवश्यकता है? – user1306322

+0

@ user1306322, आप स्क्रिप्ट कॉपी और इसे '.ps1' फ़ाइल के रूप में सहेजें। फिर आप कमांड लाइन से 'पावरहेल' और 'सी: \ myscript.ps1' 1 "' जैसे इसे चला सकते हैं। सिस्टम रजिस्ट्री को ट्विक करना संभव है ताकि आप फ़ाइल को डबल-क्लिक कर सकें। – Joulukuusi

+0

ठीक है, अब मुझे 'फ़ाइल सी: \ asd.ps1 लोड नहीं किया जा सकता है क्योंकि स्क्रिप्ट का निष्पादन इस सिस्टम पर अक्षम है।' त्रुटि, जो सामान्य प्रतीत होती है। मुझे लगता है कि इसे ठीक करने के लिए मुझे पहले Google परिणामों में से एक के साथ जाना होगा। – user1306322

3

अजगर संस्करण:

# make sure you install pywin32 
# from http://sourceforge.net/projects/pywin32/files/pywin32/Build%20218/ 
import win32con 
import win32gui 

win32gui.SystemParametersInfo(win32con.SPI_SETFONTSMOOTHING, True, 0) # enable only 
win32gui.SystemParametersInfo(win32con.SPI_SETFONTSMOOTHINGTYPE, 
     win32con.FE_FONTSMOOTHINGCLEARTYPE, 
     win32con.SPIF_UPDATEINIFILE | win32con.SPIF_SENDCHANGE) 
+0

यह समाधान काम करता है। यह भी साफ है :-) – smartsl

3

बस और अधिक विकल्प जोड़ने के लिए, मैं सी # संस्करण है, यह करने के लिए GetFontSmoothing जोड़ने।

[DllImport("user32.dll", SetLastError = true)] 
static extern bool SystemParametersInfo(uint uiAction, uint uiParam, ref int pvParam, uint fWinIni); 

const uint SPI_GETFONTSMOOTHING = 74; 
const uint SPI_SETFONTSMOOTHING = 75; 
const uint SPI_UPDATEINI = 0x1; 
const UInt32 SPIF_UPDATEINIFILE = 0x1; 

private Boolean GetFontSmoothing() 
{ 
    bool iResult; 
    int pv = 0; 
    /* Call to systemparametersinfo to get the font smoothing value. */ 
    iResult = SystemParametersInfo(SPI_GETFONTSMOOTHING, 0, ref pv, 0); 
    if (pv > 0) 
    { 
     //pv > 0 means font smoothing is on. 
     return true; 
    } 
    else 
    { 
     //pv == 0 means font smoothing is off. 
     return false; 
    } 
} 

private void DisableFontSmoothing() 
{ 
    bool iResult; 
    int pv = 0; 
    /* Call to systemparametersinfo to set the font smoothing value. */ 
    iResult = SystemParametersInfo(SPI_SETFONTSMOOTHING, 0, ref pv, SPIF_UPDATEINIFILE); 
    Console.WriteLine("Disabled: {0}", iResult); 
} 

private void EnableFontSmoothing() 
{ 
    bool iResult; 
    int pv = 0; 
    /* Call to systemparametersinfo to set the font smoothing value. */ 
    iResult = SystemParametersInfo(SPI_SETFONTSMOOTHING, 1, ref pv, SPIF_UPDATEINIFILE); 
    Console.WriteLine("Enabled: {0}", iResult); 
}