2009-11-25 5 views

Répondre

2

La deuxième partie de votre question (lorsque le bureau est double-cliqué) est relativement simple. Vous devez installer une procédure de hook définie par l'application dans une chaîne de hook. Semble assez difficile, mais est expliqué en détail dans l'exemple de code trouvé here. Vous pouvez télécharger la source here (nécessite un compte gratuit là-bas).

Pour la première partie, le masquage/affichage des icônes de bureau, j'ai trouvé plusieurs exemples de code similaires comme this, cependant, aucun ne semble fonctionner sur mon pc alors vous pourriez vouloir chercher une autre solution à ce problème.

+0

vous avez raison, le dernier lien ne semble pas fonctionner, mais merci quand même pour les 2 premiers liens. – murasaki5

0

Pour cacher les icônes du bureau, il y a une clé de registre (regardez here).

Je suppose que vous devrez redémarrer votre explorateur après pour appliquer les modifications à l'aide

 Process[] proc = Process.GetProcessesByName("Explorer"); 
     foreach(Process p in proc) 
      p.Kill(); 

     Process.Start("explorer.exe"); 
+0

en utilisant ce hack de registre cachera définitivement les icônes du bureau. Je voulais que ce soit basculé pour montrer/cacher. – murasaki5

-1

je ne sais pas comment vous afficher/masquer les icônes de bureau en utilisant C#, mais j'ai lu quelques articles à propos de la façon de le faire en utilisant les clés de recherche. le problème avec l'utilisation de la méthode des clés de registre est que le processus "Explorer.exe" doit être redémarré pour que les modifications prennent effet. heureusement, j'ai trouvé un exemple de code en ligne qui fait exactement cela:

On Error Resume Next 

' Kill Explorer.exe 

strComputer = "." 

Set objWMIService = GetObject("winmgmts:" _ 
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 

Set colProcessList = objWMIService.ExecQuery _ 
("Select * from Win32_Process Where Name = 'explorer.exe'") 

For Each objProcess in colProcessList 
objProcess.Terminate(1) 
Next 

' Launch Explorer.exe 

Set objShell = CreateObject("Wscript.Shell") 

objShell.Run "explorer.exe" 

Set objShell = Nothing 

Wscript.exit 

Ce script rapidement relancer le processus « explorer.exe » sans se déconnecter l'utilisateur actuel .... Hope it helps!

Questions connexes