Je voulais savoir s'il y avait un moyen de basculer l'icône du bureau pour afficher/masquer lorsque le bureau est double-cliqué. Semblable à la façon dont cela se fait dans Stardock Fences. Je voulais que cela soit fait en utilisant visual C#.Comment masquer les icônes du bureau en double-cliquant sur le bureau en utilisant C#
Répondre
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.
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");
en utilisant ce hack de registre cachera définitivement les icônes du bureau. Je voulais que ce soit basculé pour montrer/cacher. – murasaki5
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!
vous avez raison, le dernier lien ne semble pas fonctionner, mais merci quand même pour les 2 premiers liens. – murasaki5