2011-04-15 14 views
9

Merhaba Cleartype'ı (veya "Windows'un görünümünü ve performansını ayarlama> Ekran yazı tiplerinin düzgün kenarlarını ayarlama") cmd (veya VBS/JS gibi herhangi bir komut dosyası) veya kayıt defterinden etkinleştirmem/devre dışı bırakmam gerekir olmadan oturumunu kapatın veya Windows yeniden başlatın. Windows7'de ClearType'ı etkinleştirme/devre dışı bırakma

sadece bir uygulama için

Teşekkür uzantılı

cevap

2

yapma dosyasıdır ClearType'ın etkinleştirmek mümkündür olabilir. reg Bu komutun sözdizimi

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

yapmanız gerekir oturum kapatma ayrıca burada bu vis cmd yapabilirsiniz

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

dosyalar için kayıt

Disable_Smooth_edges_of_screen_fonts

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

Enable_Smooth_edges_of_screen_fonts olduğunu Eğer

2

benim için şu işleri: Denetim Masası> sistem> Gelişmiş sistem ayarları> Gelişmiş anced> (Performans) Ayarlar> Görsel Efektler> 'Custom' seçip aşağıdaki bağlantıyı açıklanan etrafaçevirdiğimi

1

Look 'Ekran yazı tipi kenarlarını düzelt' işaretini kaldırın: API çağırma

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

olabilir Sistem geneli güncellemesini tetikleyin, böylece değişikliği görmek için oturum kapatma/oturum açma yapmanız gerekmez.

Elbette bu, vb.net ile sınırlı değildir.

10

Windows altında komut yazmanın modern yolu PowerShell kullanıyor. nedense, PowerShell kullanamıyorsanız, varsa, WSH WinAPI işlevlerini yürütmek amacıyla DynamicWrapperX gerekir

#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) 
} 

: Aşağıdaki komut dosyası Windows XP SP3 edinilebilir sürüm 2.0 gerektirir. Önce o zaman bu VBScript kullanabilirsiniz, hedef makinede kaydetmeniz gerekir:

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 

Her iki komut 0 devre dışı ClearType demektir, bir parametre kabul 1 araçlar sağlar. Yeniden başlatma gerekli değildir.

+0

Bunu kopyalayıp ekleyip girme veya bazı powershell çalıştırılabilir komut dosyası metin dosyasına kaydetmem gerekiyor mu ve çift tıklatmalı mıyım? – user1306322

+0

@ user1306322, komut dosyasını kopyalayıp '.ps1' dosyası olarak kaydedin. Sonra komut satırından 'powershell' & 'C: \ myscript.ps1' 1 ''gibi çalıştırabilirsiniz. Yine de, dosyayı çift tıklatarak sistem kayıt defterini düzeltmek mümkündür. – Joulukuusi

+0

Tamam, şimdi 'Dosya C: \ asd.ps1 yüklenemedi çünkü komut dosyaları yürütme bu sistemde devre dışı bırakıldı çünkü. Bunu düzeltmek için ilk Google sonuçlarından biriyle gitmek zorunda kalacağım. – user1306322

3

Python sürümü:

# 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

Bu çözüm çalışıyor. Bu çok temiz :-) – smartsl

3

Sadece daha fazla seçenek eklemek için, ben buna GetFontSmoothing ekleyerek, C# sürümü var.

[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); 
}