0

I am trying to create a shortcut to a folder that my program creates when the user adds a profile to the device. The shortcut link to the folder and is supposed to appear in the users Favorites (the library to the side in Windows 7 Explorer) and have the logo.ico from our project. I thought I had to use the IWshRuntimeLibrary, but the code randomly stops on me and does not return any errors... any help?

Note: The profilePath, profileName, and executablePath all return the correct data and point to the correct locations for the items I am trying to access and modify.

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;
}
Blaze Phoenix
  • 859
  • 2
  • 14
  • 33

1 Answers1

0

Try looking at both this question and this question. If I'm understanding, I think you want to be able to create a shortcut in the "favorite" area of Windows 7.

Community
  • 1
  • 1
Icemanind
  • 47,519
  • 50
  • 171
  • 296