在运行时创建Windows 7快捷方式

时间:2012-11-06 14:44:03

标签: c# windows-7 .net-4.0 shortcuts

我正在尝试创建一个文件夹的快捷方式,当用户将配置文件添加到设备时,我的程序会创建该文件夹。该文件夹的快捷方式链接应该出现在用户收藏夹(Windows 7资源管理器中的库)中,并且我们的项目中有logo.ico。我以为我必须使用IWshRuntimeLibrary,但代码随机停在我身上并且不会返回任何错误......有什么帮助吗?

注意:profilePath,profileName和executablePath都返回正确的数据,并指向我尝试访问和修改的项目的正确位置。

public static bool CreateProfileShortcut(string profilePath, string profileName, string executablePath)
{
    bool success = false;
    string favoritesPath = "";
    IWshRuntimeLibrary.IWshShell wsh;
    IWshRuntimeLibrary.IWshShortcut shortcut;

    try
    {
        if (!String.IsNullOrWhiteSpace(profilePath) && Directory.Exists(profile.Path))
        {
            favoritesPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
            if (!File.Exists(favoritesPath + "\\Links\\" + profileName + ".lnk"))
            {
                wsh = new IWshRuntimeLibrary.WshShell();
                shortcut = (IWshRuntimeLibrary.IWshShortcut)wsh.CreateShortcut(favoritesPath + "\\Links\\" + profileName + ".lnk");
                shortcut.TargetPath = profilePath;
                shortcut.IconLocation = executablePath + "\\Icons\\logo.ico";
                shortcut.Save();
            }
        }
    }
    catch (Exception e)
    {
        MessageBox.Show(MessageBoxError(new string[] { e.TargetSite.Name, e.Message, "MinorError" }));
        success = false;
    }

    return success;
}

1 个答案:

答案 0 :(得分:0)

尝试同时查看this questionthis question。如果我理解,我想你希望能够在Windows 7的“收藏夹”区域中创建一个快捷方式。