2012-12-04 17 views
13

Od pewnego czasu używam następującego kodu Win32 do Ukrywania pulpitu (ukrywanie wszystkich ikon na pulpicie). Następujące jest w mojej klasie Win32_Window, ponieważ Desktop jest tylko oknem.Ukryj ikony pulpitu Windows 8

public bool Visible 
{ 
    get { return IsWindowVisible(Handle); } 
    set 
    { 
     ShowWindow(Handle, value ? ShowWindowConsts.SW_SHOW : 
      ShowWindowConsts.SW_HIDE); 
    } 
} 

Z Windows 8 ukrywa powyższe nie tylko na pulpicie, ale to sprawia, że ​​przejść całkowicie puste. Teraz przypuszczam, że można to uznać za normalne, ponieważ polecenie ma ukryć, ale do tej pory nie stanowiło to problemu, ponieważ obraz tła pulpitu byłby nadal widoczny (co było intencją).

Próbowałem to, aby przełączać ikony: https://stackoverflow.com/a/6403014/353147 ale to nie działa w systemie Windows 8.

ktoś znalazł rozwiązanie tego?

+0

można znaleźć odpowiedź tutaj :-) http://stackoverflow.com/questions/6402834/how-to-hide-desktop-icons-programatically –

Odpowiedz

0

Jeśli chcesz tylko ukryć ikony na pulpicie, możesz kliknąć prawym przyciskiem myszy na pulpicie, przejść do "Widok" i odznaczyć opcję "Pokaż ikony pulpitu".

+0

I to zrobić z kodu? –

0

Można to zrobić w RegEdit HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Zaawansowanych HideIcons zmian do 1

static void HideIcons() 
    { 
     RegistryKey myKey = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced", true); 
     if (myKey != null) 
     { 
      myKey.SetValue("HideIcons", 1); 
      myKey.Close(); 
     } 
    } 

użyć klasy Registry jak opisano tutaj.

http://msdn.microsoft.com/en-us/library/microsoft.win32.registry.aspx