private void AddNewLnk(string path, string NewLnkName) { ShellLink slLinkObject = new ShellLink(); slLinkObject.WorkPath = Application.StartupPath; slLinkObject.IconLocation = ",0"; // 0 为图示文件的 Index slLinkObject.ExecuteFile = Application.ExecutablePath; slLinkObject.Save(path + "\\" + NewLnkName); slLinkObject.Dispose(); }
/// <summary> /// 重命名快捷方式,不存在则创建 /// </summary> /// <param name="path"></param> /// <param name="NewLnkName"></param> /// <returns></returns> private int RenameLnk(string path, string NewLnkName) { try { if (NewLnkName.ToLower().IndexOf(".lnk") == -1) { NewLnkName += ".lnk"; } string CurProgram = System.Diagnostics.Process.GetCurrentProcess().ProcessName;//当前程序名称 if (CurProgram.IndexOf(".") > 0) { CurProgram = CurProgram.Substring(0, CurProgram.IndexOf(".")); } string[] files = Directory.GetFiles(path); for (int i = 0; i < files.Length; i++) { if (files[i].Contains(".lnk")) { ShellLink slLinkObject = new ShellLink(files[i]); if (slLinkObject.ExecuteFile.ToUpper() == Application.ExecutablePath.Replace('/', '\\').ToUpper()) { NewLnkName = Path.GetDirectoryName(files[i]) + "\\" + NewLnkName; if (slLinkObject.CurrentShortcutFile == NewLnkName) { return(1); } File.Move(files[i], NewLnkName); return(0); } } } AddNewLnk(path, NewLnkName); return(2); } catch (Exception ex) { log.AddERRORLOG("重命名快捷方式异常:" + ex.Message); return(3); } }