C# 如何使用c双击桌面来隐藏桌面图标#

C# 如何使用c双击桌面来隐藏桌面图标#,c#,desktop,icons,double-click,C#,Desktop,Icons,Double Click,我想知道是否有一种方法可以在双击桌面时切换桌面图标以显示/隐藏。类似于在Stardock围栏中的操作。我希望使用visual c完成此操作。问题的第二部分(双击桌面时)相对简单。您需要将应用程序定义的钩子过程安装到钩子链中。听起来很难,但是在找到的代码示例中有详细的解释。您可能需要下载源代码(需要那里的免费帐户) 对于第一部分,隐藏/取消隐藏桌面图标,我发现了几个类似的代码示例,例如,在我的电脑上似乎没有一个可以工作,因此您可能需要寻找另一个解决方案来解决这个问题。要隐藏桌面图标,有一个注册表项

我想知道是否有一种方法可以在双击桌面时切换桌面图标以显示/隐藏。类似于在Stardock围栏中的操作。我希望使用visual c完成此操作。

问题的第二部分(双击桌面时)相对简单。您需要将应用程序定义的钩子过程安装到钩子链中。听起来很难,但是在找到的代码示例中有详细的解释。您可能需要下载源代码(需要那里的免费帐户)


对于第一部分,隐藏/取消隐藏桌面图标,我发现了几个类似的代码示例,例如,在我的电脑上似乎没有一个可以工作,因此您可能需要寻找另一个解决方案来解决这个问题。

要隐藏桌面图标,有一个注册表项(请查看)

我想你必须重新启动你的浏览器,然后使用

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

        Process.Start("explorer.exe");

我不知道如何使用C#显示/隐藏桌面图标,但是我读了一些关于如何使用resistry键的文章。使用注册表项方法的问题是“Explorer.exe”进程必须重新启动才能使更改生效。幸运的是,我在网上找到了一个代码示例:

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

该脚本将在不注销当前用户的情况下快速重新启动“Explorer.exe”进程。。。。希望有帮助

你说得对,最后一个链接似乎不起作用,但无论如何还是要感谢前两个链接。使用注册表黑客将永久隐藏桌面图标。我想把它切换成显示/隐藏。