2

我想知道是否有办法在双击桌面时切换桌面图标以显示/隐藏。类似于在 Stardock Fences 中的操作方式。我希望使用 Visual c# 来完成。

4

3 回答 3

2

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

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

于 2009-12-01T09:37:46.470 回答
0

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

我想你必须在那之后重新启动你的资源管理器才能通过使用来应用更改

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

        Process.Start("explorer.exe");
于 2009-12-04T10:13:45.037 回答
-1

我不知道如何使用 C# 显示/隐藏桌面图标,但是我已经阅读了一些关于如何使用电阻键进行操作的文章。使用注册表项方法的问题是必须重新启动“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”进程……希望对您有所帮助!

于 2011-11-06T00:36:36.260 回答