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

时间:2009-11-25 09:38:13

标签: c# desktop icons double-click

我想知道在双击桌面时是否有办法切换桌面图标以显示/隐藏。类似于Stardock Fences的做法。我希望它可以使用visual c#。

完成

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

为了隐藏桌面图标,有一个注册表项(看看here)。

我想您必须在此之后重新启动资源管理器才能使用

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

        Process.Start("explorer.exe");

答案 2 :(得分:-1)

我不知道如何使用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”进程,而无需关闭当前用户....希望它有帮助!