विंडोज के तहत स्क्रिप्टिंग का आधुनिक तरीका 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
साधन सक्षम करें। कोई रीबूट की आवश्यकता नहीं है।
क्या मैं इसे कॉपी करता हूं और बस डालें और एंटर दबाएं या क्या मुझे इसे कुछ पावरहेल निष्पादन योग्य स्क्रिप्ट टेक्स्ट फ़ाइल में सहेजने और डबल-क्लिक करने की आवश्यकता है? – user1306322
@ user1306322, आप स्क्रिप्ट कॉपी और इसे '.ps1' फ़ाइल के रूप में सहेजें। फिर आप कमांड लाइन से 'पावरहेल' और 'सी: \ myscript.ps1' 1 "' जैसे इसे चला सकते हैं। सिस्टम रजिस्ट्री को ट्विक करना संभव है ताकि आप फ़ाइल को डबल-क्लिक कर सकें। – Joulukuusi
ठीक है, अब मुझे 'फ़ाइल सी: \ asd.ps1 लोड नहीं किया जा सकता है क्योंकि स्क्रिप्ट का निष्पादन इस सिस्टम पर अक्षम है।' त्रुटि, जो सामान्य प्रतीत होती है। मुझे लगता है कि इसे ठीक करने के लिए मुझे पहले Google परिणामों में से एक के साथ जाना होगा। – user1306322