c# - 如何使用 C# 删除 StartMenu 快捷方式

标签 c# windows

如何使用 C# 从 Windows 中的“开始”菜单中删除快捷方式文件夹,我知道如何使用此代码执行此操作:

    private void RemoveShortCutFolder(string folder)
    {
        folder = folder.Replace("\"  ", "");
        folder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.StartMenu), folder);
        try
        {
            if (System.IO.Directory.Exists(folder))
            {
                System.IO.Directory.Delete(folder, true);
            }
            else
            {
            }
        }
        catch (Exception)
        {
        }
    }

但问题是我需要删除所有用户文件夹中的一个快捷方式文件夹,而不是当前登录的用户。 Environment.SpecialFolder.StartMenu 给我当前用户而不是所有用户文件夹。

任何想法,

谢谢,

最佳答案

如果你不介意一点Win32,你可以使用SHGetSpecialFolderPath .

[DllImport("shell32.dll")]
static extern bool SHGetSpecialFolderPath(IntPtr hwndOwner, StringBuilder lpszPath, CSIDL nFolder, bool fCreate);

enum CSIDL
{
  COMMON_STARTMENU = 0x0016,
  COMMON_PROGRAMS = 0x0017
}

static void Main(string[] args)
{
  StringBuilder allUsersStartMenu = new StringBuilder(255);
  SHGetSpecialFolderPath(IntPtr.Zero, allUsersStartMenu, CSIDL.COMMON_PROGRAMS, false);
  Console.WriteLine("All Users' Start Menu is in {0}", allUsersStartMenu.ToString());
}

关于c# - 如何使用 C# 删除 StartMenu 快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/650746/

相关文章:

c - c mktime 在 Windows 和 GNU/Linux 上是否不同?

windows - Ruby 1.9.2 Find.find 编码

c# - 修改 Service Fabric 可靠集合中的原始对象

c# - 错误 : Object must implement IConvertible

c++ - 逐个字符不一致地响应\n

c# - 枚举Windows中特定类型的文件

c# - 如何在 .NET Core 1.0 中使用 Entity Framework 运行 sql 脚本?

c# - 在ASP.NET中运行的异常处理应用程序 block 异常处理程序无法调用Response.End()

javascript - 向下滚动 [GeckoFx + Javascript]

c# - 在 Windows 8 应用程序中浏览文件夹?