当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何使用C#删除StartMenu快捷方式》经验,为你挑选了1个好方法。

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

    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)
        {
        }
    }

但是我需要删除ALL USERS文件夹中的一个快捷方式文件夹而不是当前登录用户的问题.Environment.SpecialFolder.StartMenu为我提供了当前用户并非所有用户文件夹.

任何的想法,

谢谢,



1> Samuel..:

如果你不介意一点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());
}

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有