//保存ボタン押下時の処理 private void saveButton_Click(object sender, EventArgs e) { //入力フォームの内容をチェックし、問題がなければショートカットを作成する IWshShell shell = new IWshShell_Class(); String filePath = this.pathTextBox.Text; //ファイルパスを取得 //実在するパスが入力されているか確認する if (System.IO.File.Exists(filePath)) { //ショートカットを作成し、ディレクトリに配置する String shortcutName = this.nameTextBox.Text; //入力された名前をを取得 IWshShortcut_Class shortcut = shell.CreateShortcut(Directory.GetCurrentDirectory() + "\\icon\\" + shortcutName + ".lnk"); //パスを指定し、ショートカットを作成 shortcut.TargetPath = filePath; //リンク先の設定 shortcut.Arguments = this.parameterTextBox.Text; //コマンドライン引数の指定 shortcut.WorkingDirectory = Path.GetDirectoryName(filePath); //作業ディレクトリの指定 shortcut.IconLocation = filePath; //アイコンの指定 shortcut.Save(); //ショートカットの保存 this.Close(); } else { //filePathのファイルは存在しない MessageBox.Show("指定されたファイルは存在しません。入力をやり直して下さい"); } }
/// <summary> /// 获取快捷方式的真实路径 /// </summary> /// <param name="path"></param> /// <returns></returns> public static string GetTarget(string path) { IWshShortcut _shortcut = null; IWshShell_Class shell = new IWshShell_Class(); if (System.IO.File.Exists(path) == true) _shortcut = shell.CreateShortcut(path) as IWshShortcut;//在vs2010中CreateShortcut返回dynamic 类型 return _shortcut.TargetPath; }
/// <summary> /// 创建一个快捷方式 /// </summary> /// <param name="lnkPath">创建的快捷方式完整路径</param> /// <param name="targetPath">目标完整路径</param> public static void CreateShortcut(string lnkPath, string targetPath) { IWshShell_Class wshShell = new IWshShell_Class(); IWshShortcut shortcut = (IWshShortcut)wshShell.CreateShortcut(lnkPath.Trim()); shortcut.TargetPath = targetPath.Trim(); shortcut.Save(); }
/// <summary> /// 获取快捷方式的真实路径 /// </summary> /// <param name="path"></param> /// <returns></returns> public static string getTarget(string path) { IWshShortcut _shortcut = null; IWshShell_Class shell = new IWshShell_Class(); if (System.IO.File.Exists(path) == true) _shortcut = shell.CreateShortcut(path) as IWshShortcut;//在vs2010中CreateShortcut返回dynamic 类型 return _shortcut.TargetPath; }
private void ChangeShortcutHotkey() { IWshShell_Class wshShell = new IWshShell_Class(); object tempObj = wshShell.CreateShortcut(shortcutPath); IWshShortcut shortcut = (IWshShortcut)tempObj; shortcut.Hotkey = testBoxHotkey.Text; shortcut.Save(); }
// --> https://stackoverflow.com/questions/18023379/creating-a-file-shortcut-lnk public override void /*AbstractProgramLogic.*/ PromoteStartup() { var fileName = this._programInfo.Origin.Location; var wsh = new IWshShell_Class(); var shortcut = wsh.CreateShortcut(fileName) as IWshShortcut; shortcut.TargetPath = this._programInfo.StartInfo.FilePath; shortcut.Arguments = this._programInfo.StartInfo.Arguments; shortcut.Save(); }
public static void createShortcut() { var wsh = new IWshShell_Class(); IWshShortcut shortcut = wsh.CreateShortcut(Util.getToolboxesPath() + Util.tlb.name + ".lnk") as IWshRuntimeLibrary.IWshShortcut; shortcut.TargetPath = Path.GetDirectoryName(Application.ExecutablePath) + "\\toolbox.exe"; shortcut.IconLocation = Util.getToolboxesPath() + Util.tlb.name + "/icon.ico"; shortcut.Arguments = Util.tlb.name; shortcut.WorkingDirectory = Path.GetDirectoryName(Application.ExecutablePath); shortcut.Save(); }
private static void AddUtilityServiceRunnerToStartup(string utilityServiceRunnerDirectory) { var wsh = new IWshShell_Class(); var utilityServiceRunnerShortcut = wsh.CreateShortcut("C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\Launch Utility Service Runner.lnk") as IWshShortcut; utilityServiceRunnerShortcut.TargetPath = Path.Combine(utilityServiceRunnerDirectory, "UtilityServiceRunner.exe"); utilityServiceRunnerShortcut.WorkingDirectory = utilityServiceRunnerDirectory; utilityServiceRunnerShortcut.Save(); }
public static IWshURLShortcut getUrlShortcut(string path) { IWshURLShortcut shortcut = null; if (System.IO.File.Exists(path)) { var wsh = new IWshShell_Class(); shortcut = wsh.CreateShortcut(path); } return shortcut; }
public static void CreateShortcut(string path, string fileName, string iconPath) { var wsh = new IWshShell_Class(); IWshShortcut shortcut = wsh.CreateShortcut(string.Format("{0}\\{1}.lnk", Environment.GetFolderPath(Environment.SpecialFolder.Desktop), fileName)) as IWshShortcut; shortcut.TargetPath = path; shortcut.IconLocation = iconPath; shortcut.Save(); }
static void Main(string[] args) { var Folder = Environment.GetFolderPath(Environment.SpecialFolder.Startup); var wsh = new IWshShell_Class(); // Creates a copy of the application handling the startup procedure string Startup = Folder + @"\\Itadel-Lock-Shortcut.lnk"; if (!System.IO.File.Exists(Startup)) { IWshShortcut Shortcut = wsh.CreateShortcut(Startup) as IWshShortcut; Shortcut.TargetPath = Assembly.GetExecutingAssembly().Location; Shortcut.Save(); } Process[] Itadel = Process.GetProcessesByName("Itadel"); if (Itadel.Length == 0) { /* Wait 30000 milliseconds (30seconds) then open the lockscreen * This is used to secure that bootup is able to finish before the screen is locked */ Thread.Sleep(millisecondsTimeout: 30000); // The application settings to open the Lockscreen in case of autostart selected ProcessStartInfo itadel = new ProcessStartInfo { CreateNoWindow = false, UseShellExecute = false, FileName = "Itadel.exe", WindowStyle = ProcessWindowStyle.Hidden, Arguments = System.IO.Directory.GetCurrentDirectory() + " " + "-Q", }; try { Process.Start(itadel); Thread.Sleep(millisecondsTimeout: 5000); Environment.Exit(1); } catch { Environment.Exit(1); } } else // If itadel is already open, dont open anything but watch the proccess for exit { foreach (Process Proc in Itadel) { if (Proc.ProcessName == "Itadel") { Proc.WaitForExit(); Environment.Exit(0); } } } }
public static IWshShortcut getShortcut(string path) { IWshShortcut shortcut = null; if (System.IO.File.Exists(path)) { var wsh = new IWshShell_Class(); shortcut = wsh.CreateShortcut(path); } return(shortcut); }
public static void place_shortcut_on_desktop() { string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\YourName.lnk"; string shortcutto = System.Reflection.Assembly.GetExecutingAssembly().Location; var wsh = new IWshShell_Class(); IWshRuntimeLibrary.IWshShortcut shortcut = wsh.CreateShortcut(desktopPath) as IWshRuntimeLibrary.IWshShortcut; shortcut.TargetPath = shortcutto; shortcut.WorkingDirectory = Directory.GetParent(shortcutto).FullName; shortcut.Save(); }
private static IWshShortcut GetShellLink(string linkFilePath) { if (!global::System.IO.File.Exists(linkFilePath)) { throw new FileNotFoundException("Tried to create DesktopEntry from non-existent lnk file: " + linkFilePath); } IWshShell shell = new IWshShell_Class(); var shellLink = (IWshShortcut)shell.CreateShortcut(linkFilePath); return(shellLink); }
/// <summary> /// Добавление в автозагрзу /// </summary> /// <param name="FilePath">Путь к запускаемому файлу</param> /// <param name="WorkDir">Рабочая директория</param> /// <param name="SaveTo">Куда сохранить ярлык</param> private void CreateShortCut(string FilePath, string WorkDir, string SaveTo) { var WshShell = new IWshShell_Class(); IWshShortcut MyShortcut; MyShortcut = (IWshShortcut)WshShell.CreateShortcut(SaveTo); //путь к exe MyShortcut.TargetPath = FilePath; MyShortcut.Description = "Запуск"; //рабочая диреткория MyShortcut.WorkingDirectory = WorkDir; MyShortcut.Save(); }
public void CreateShortcut(string ShortcutDirectory) { var wsh = new IWshShell_Class(); IWshShortcut shortcut = wsh.CreateShortcut(ShortcutDirectory + "\\Igloo.lnk") as IWshRuntimeLibrary.IWshShortcut; shortcut.Arguments = ""; shortcut.TargetPath = installer.DefaultDirectory + @"\Igloo Browser.exe"; // not sure about what this is for shortcut.WindowStyle = 1; shortcut.Description = "A web browser made by MoonByte"; shortcut.WorkingDirectory = installer.DefaultDirectory; shortcut.IconLocation = installer.DefaultDirectory + @"\icon.ico"; shortcut.Save(); }
public static string Extract(string ico, string shortcutLocation) { String path = Environment.GetFolderPath(Environment.SpecialFolder.System); Console.WriteLine(path); // string shortcutLocation = @"C:\Users\Gordan\Zune.lnk"; string newIconLocation = path + @"\shell32.dll," + ico; IWshShell_Class Shell = new IWshShell_Class(); // IWshRuntimeLibrary.IWshShell_Class WshShortcut cl = (WshShortcut)Shell.CreateShortcut(shortcutLocation); cl.IconLocation = newIconLocation; cl.Save(); return(""); }
public void CreateConfig(Image groupImage) { string path = @"config\" + this.Name; string filePath = path + @"\" + this.Name + "Group.exe"; // // Directory and .exe // System.IO.Directory.CreateDirectory(@"Shortcuts\"); System.IO.Directory.CreateDirectory(@path); System.IO.File.Copy(@"config\config.exe", @filePath); // // XML config // System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(Category)); using (FileStream file = System.IO.File.Create(@path + @"\ObjectData.xml")) writer.Serialize(file, this); // // Create .ico // Image img = ImageFunctions.ResizeImage(groupImage, 1024, 1024); // Resize img if too big img.Save(path + @"\GroupImage.png"); using (FileStream fs = new FileStream(path + @"\GroupIcon.ico", FileMode.Create)) ImageFunctions.IconFromImage(img).Save(fs); // saving as icon // // Create .lnk shortcut // var wsh = new IWshShell_Class(); IWshRuntimeLibrary.IWshShortcut shortcut = wsh.CreateShortcut( path + "\\" + this.Name + ".lnk") as IWshRuntimeLibrary.IWshShortcut; shortcut.Arguments = ""; shortcut.TargetPath = Path.GetFullPath(@filePath); shortcut.WindowStyle = 1; shortcut.Description = path + " shortcut"; shortcut.WorkingDirectory = Path.GetFullPath(@path); shortcut.IconLocation = Path.GetFullPath(path + @"\GroupIcon.ico"); shortcut.Save(); System.IO.File.Move(@path + "\\" + this.Name + ".lnk", Path.GetFullPath(@"Shortcuts\" + this.Name + ".lnk")); // moving .lnk to correct directory }
/// <summary> /// 获取快捷方式的目标路径 /// </summary> /// <param name="shortcupFilePath">快捷方式的完整路径</param> /// <returns></returns> /// <exception cref="StartupItemNotFoundException"></exception> static public string GetTargetPathOfShortcutFile(string shortcupFilePath) { if (!System.IO.File.Exists(shortcupFilePath)) { throw new StartupItemNotFoundException(); } IWshShell_Class wshShell = new IWshShell_Class(); try { IWshShortcut shortcut = (IWshShortcut)wshShell.CreateShortcut(shortcupFilePath); return(shortcut.TargetPath); } catch (Exception e) { Console.WriteLine(e.Message); } return(""); }
public void appshortcut() { // Create a Windows Script Host Shell class IWshShell_Class shell = new IWshShell_Class(); // Define the shortcut file //IWshURLShortcut shortcut = shell.CreateShortcut(location1) as IWshURLShortcut; IWshShortcut_Class shortcut = shell.CreateShortcut(location2) as IWshShortcut_Class; shortcut.WorkingDirectory = @"E:\Program Files (x86)\KuGou\KGMusic"; shortcut.TargetPath = @"E:\Program Files (x86)\KuGou\KGMusic\KuGou.exe"; // Save it shortcut.Save(); }
/// <summary> /// 根据lnk path得到用户的exe 执行路径 /// </summary> /// <param name="path">快捷方式lnk path</param> /// <returns>执行路径</returns> /// public static string GetAppExePath(string path) { string exepath = ""; try { IWshShortcut _shortcut = null; IWshShell_Class shell = new IWshShell_Class(); if (System.IO.File.Exists(path) == true) { _shortcut = shell.CreateShortcut(path) as IWshShortcut;//在vs2010中CreateShortcut返回dynamic 类型 } //所以要加as 进行对象类型转换 exepath = _shortcut.TargetPath; } catch { } return(exepath); }
public void Add2StartUp(bool startupStatus) { string startupPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Startup), "USBSecure.lnk"); if (startupStatus) { string shortCutTo = System.Reflection.Assembly.GetExecutingAssembly().Location; var wsh = new IWshShell_Class(); IWshShortcut shortCut = wsh.CreateShortcut(startupPath) as IWshShortcut; shortCut.TargetPath = shortCutTo; shortCut.WorkingDirectory = Directory.GetParent(shortCutTo).FullName; shortCut.Save(); } else { if (System.IO.File.Exists(startupPath)) { System.IO.File.Delete(startupPath); } } }
/* * Creates a link between a tag and a bundle. * Link is placed in orig_path and links to dest_path */ public void CreateROLink(String origPath, String destPath, string bundleName) { //TODO add shortcut icon IWshShell_Class shell = new IWshShell_Class(); try { // Create the shortcut and choose the path for the shortcut IWshShortcut myShortcut = shell.CreateShortcut(origPath + "\\" + bundleName + ".lnk"); // Where the shortcut should point to myShortcut.TargetPath = destPath; // Description for the shortcut myShortcut.Description = "bundle"; // Location for the shortcut's icon //myShortcut.IconLocation = MediaTypeNames.Application.StartupPath + @"\app.ico"; myShortcut.IconLocation = Application.StartupPath + @"\Icons\bundle.ico"; // Create the shortcut at the given path myShortcut.Save(); } catch (Exception e) { throw; } }
public void creatdesktop() { string app = Environment.CurrentDirectory + @"\_58.exe"; try { // Create a Windows Script Host Shell class IWshShell_Class shell = new IWshShell_Class(); // Define the shortcut file IWshShortcut_Class shortcut = shell.CreateShortcut(app + ".lnk") as IWshShortcut_Class; // Set all its properties shortcut.Description = "Smart sample of creating shell shortcut"; shortcut.TargetPath = app; shortcut.IconLocation = app + ",0"; // Save it shortcut.Save(); } catch (COMException ex) { Console.WriteLine(ex.Message); } }
private static void CreateObject() { settings Settings = settings.load(); string URL = Settings.sonarrURL + "/api/history?page=1&pageSize=" + Settings.sonarrMaxHistory + "&sortkey=date&sortDir=desc&apikey=" + Settings.sonarrAPI; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL); request.Method = "GET"; request.ContentType = "application/json"; //request.ContentLength = DATA.Length; try { WebResponse webResponse = request.GetResponse(); using (Stream webStream = webResponse.GetResponseStream()) { if (webStream != null) { using (StreamReader responseReader = new StreamReader(webStream)) { string response = responseReader.ReadToEnd(); JsonDocument jo = JsonDocument.Parse(response); //open the response and parse it using JSON. Query for newly imported files foreach (JsonElement element in jo.RootElement.GetProperty("records").EnumerateArray()) { try { string title = element.GetProperty("sourceTitle").ToString(); JsonElement elData = element.GetProperty("data"); JsonElement elImportPath; bool success = elData.TryGetProperty("importedPath", out elImportPath); if (!success) { Console.Out.WriteLine("No import path for " + title + " - failed / still processing?"); } else { string importPath = elImportPath.ToString(); //go through these and create the link. bool found = false; foreach (grabbedFile g in Settings.recentGrabs) { if (g.filename == importPath) { found = true; } } if (found == true) { Console.Out.WriteLine("Already processed " + importPath); } else { Console.Out.WriteLine("Processing " + importPath); string filename = Path.GetFileNameWithoutExtension(importPath); //invalid chars foreach (char invalidchar in System.IO.Path.GetInvalidFileNameChars()) { filename = filename.Replace(invalidchar, '_'); } filename = Settings.destinationFolder + @"/" + filename + ".lnk"; //apply any replacements string destination = importPath; foreach (replacement r in Settings.replacements) { destination = destination.Replace(r.source, r.replace); } //replace unix paths with windows ones. destination = destination.Replace(@"/", @"\"); //TODO - for linux use mslink.sh http://www.mamachine.org/mslink/index.en.html //craete the link file. var wsh = new IWshShell_Class(); try { IWshRuntimeLibrary.IWshShortcut shortcut = wsh.CreateShortcut(filename) as IWshRuntimeLibrary.IWshShortcut; shortcut.TargetPath = destination; shortcut.Save(); } catch (Exception e) { Console.Out.WriteLine("--------Failed to create shortcut---------"); Console.Out.WriteLine(filename); Console.Out.WriteLine(e.Message); Console.Out.WriteLine(e.InnerException); Console.Out.WriteLine(e.StackTrace); Console.Out.WriteLine("-----------------"); } //log it Settings.recentGrabs.Add(new grabbedFile(importPath)); } } } catch (Exception e) { Console.Out.WriteLine("-----Failed to parse record------------"); Console.Out.WriteLine(e.Message); Console.Out.WriteLine(e.InnerException); Console.Out.WriteLine(e.StackTrace); Console.Out.WriteLine("-----------------"); } } } } } Settings.save(); } catch (Exception e) { Console.Out.WriteLine("-----------------"); Console.Out.WriteLine(e.Message); Console.Out.WriteLine(e.InnerException); Console.Out.WriteLine(e.StackTrace); Console.Out.WriteLine(e.ToString()); } }
/// <summary> /// Installs an app using the full process /// </summary> /// <param name="executables">The list of executables installed in the program</param> /// <param name="programFolder">The folder where the program is situated</param> /// <param name="installFolder">The folder where the program is to be installed</param> /// <param name="containedInAnAppFolder">Whether the executable is contained in an app folder or is standalone</param> /// <param name="isAdmin">Whether the user wishes to act as admin or not</param> public static void InstallApp(List<ExecutableData> executables, string programFolder, string installFolder, bool containedInAnAppFolder, bool isAdmin) { // Change shortcut name to include standard .lnk extension executables.ForEach(x => x.ShortcutName = Path.GetFileNameWithoutExtension(x.ShortcutName) + ".lnk"); // Move files to project folder Directory.CreateDirectory(installFolder); if (containedInAnAppFolder) { SharedApp.MoveDirectory(programFolder, installFolder); } else { foreach (ExecutableData executable in executables) { System.IO.File.Move(Path.Combine(programFolder, executable.ExecutablePath), Path.Combine(installFolder, executable.ExecutablePath)); } } // Create shortcuts IWshShell_Class wsh = new IWshShell_Class(); foreach (ExecutableData executable in executables) { IWshShortcut shortcut, desktopShortcut = null; if (isAdmin) { // Create standard shortcut shortcut = wsh.CreateShortcut(Path.Combine(Environment.GetFolderPath( Environment.SpecialFolder.CommonPrograms), executable.ShortcutName)) as IWshShortcut; // Create desktop shortcut if (executable.OnDesktop) { desktopShortcut = wsh.CreateShortcut(Path.Combine(Environment.GetFolderPath( Environment.SpecialFolder.CommonDesktopDirectory), executable.ShortcutName)) as IWshShortcut; } } else { // Create standard shortcuts shortcut = wsh.CreateShortcut(Path.Combine(Environment.GetFolderPath( Environment.SpecialFolder.Programs), executable.ShortcutName)) as IWshShortcut; // Create desktop shortcut if (executable.OnDesktop) { desktopShortcut = wsh.CreateShortcut(Path.Combine(Environment.GetFolderPath( Environment.SpecialFolder.Desktop), executable.ShortcutName)) as IWshShortcut; } } shortcut.WorkingDirectory = installFolder; shortcut.TargetPath = Path.Combine(installFolder, Path.Combine(installFolder, executable.ExecutablePath)); shortcut.Save(); // Desktop shortcuts will be created if they are required if (executable.OnDesktop) { desktopShortcut.WorkingDirectory = installFolder; desktopShortcut.TargetPath = Path.Combine(installFolder, Path.Combine(installFolder, executable.ExecutablePath)); desktopShortcut.Save(); } } }
//アイコンをフォームに描写する private void arrangeIconsProcessing() { //作業ディレクトリのiconディレクトリにあるショートカットの一覧を取得する string[] files = Directory.GetFiles(Directory.GetCurrentDirectory() + "\\icon"); IWshShell shell = new IWshShell_Class(); //フォームの座標 pictureBoxNumber = 0; //ピクチャボックス番号の初期化 int x = 0; //フォームのx軸 int y = 30; //フォームのy軸 const int ICON_SIZE = 35; //フォームに表示するアイコンのサイズ Size clientSize = this.ClientSize; int width = clientSize.Width / ICON_SIZE; //一行に何個アイコンが並ぶか //ショートカットからメニューの項目を作成する foreach (String filePath in files) { //ファイルがショートカットであるかどうかを判定 FileInfo fileInfo = new FileInfo(filePath); String extension = fileInfo.Extension; //ファイルの拡張子を取得 //ショートカットのアイコンを取得 Icon icon = System.Drawing.Icon.ExtractAssociatedIcon(filePath); //ショートカットだった場合、メニューに項目を追加する if (extension.Equals(".lnk")) { //一つのショートカットに付き、一つのアイコンを作成する IWshShortcut_Class shortcut = shell.CreateShortcut(filePath); PictureBox pictureBox = new PictureBox(); pictureBox.Name = "pictureBox" + pictureBoxNumber; //ピクチャボックスに名前を付ける pictureBoxNumber++; //ピクチャボックス番号の更新 //アイコンをクリックすると、リンク先を開く処理を追加 pictureBox.Click += delegate(object sender, EventArgs e) { //ショートカットのリンク先を開く処理を実装 Process.Start(shortcut.TargetPath, shortcut.Arguments); }; //ツールチップにファイル名を表示する pictureBox.MouseHover += delegate(object sender, EventArgs e) { String fileName = fileInfo.Name.Substring(0, fileInfo.Name.Length - extension.Length); //ファイル名から拡張子を取り除く ToolTip toolTip = new ToolTip(); toolTip.SetToolTip(pictureBox, fileName); }; //フォームにアイコンを追加する pictureBox.Image = icon.ToBitmap(); pictureBox.SizeMode = PictureBoxSizeMode.AutoSize; pictureBox.Location = new Point(x, y); this.Controls.Add(pictureBox); //まだアイコンを行に並べられる場合 if (width != 0) { x += ICON_SIZE; width--; } //行にアイコンを並べ終えた場合 if (width == 0) { width = clientSize.Width / ICON_SIZE; //並べるアイコンの数を更新 y += ICON_SIZE; x = 0; } } } }
public void AttivaEsecuzioneAutomatica() { var wsh = new IWshShell_Class(); string programPath = Environment.GetFolderPath(Environment.SpecialFolder.Startup) + @"\PrinterTimerControl.lnk"; IWshShortcut shortcut = wsh.CreateShortcut(programPath) as IWshShortcut; shortcut.Description = "Avvia Applicazione PrinterTimerControl"; shortcut.TargetPath = Application.ExecutablePath; shortcut.Save(); }
private void ShortcutToPath_Func(string ShortcutOriFilePath) { //http://dobon.net/vb/dotnet/file/pathcombine.html //フォルダ毎ドラッグしても、なうぷれTunes を 検出 if (System.IO.File.Exists(System.IO.Path.Combine(ShortcutOriFilePath, "NowplayingTunes.exe"))) { ShortcutOriFilePath = System.IO.Path.Combine(ShortcutOriFilePath, "NowplayingTunes.exe"); } if (System.IO.File.Exists(System.IO.Path.Combine(ShortcutOriFilePath, "なうぷれTunes.exe"))) { ShortcutOriFilePath = System.IO.Path.Combine(ShortcutOriFilePath, "なうぷれTunes.exe"); } if (ShortcutOriFilePath != "") { //絶対パスに変換して、比較 if (ShortcutOriFilePath == Application.ExecutablePath || System.IO.Path.GetFullPath(ShortcutOriFilePath) == Application.ExecutablePath) //自分自身のパスは何もしない { ShortcutOriFilePath = ""; } else { if (System.IO.File.Exists(ShortcutOriFilePath)) { if (ShortcutOriFilePath.Length >= 4) { if (ShortcutOriFilePath.LastIndexOf(".lnk") == ShortcutOriFilePath.Length - 4) { //http://d.hatena.ne.jp/hikaruright/20121026/1351214441 // .lnkファイルからpathを拾う IWshShell_Class shell = new IWshShell_Class(); IWshShortcut_Class shortcut; shortcut = (IWshShortcut_Class)shell.CreateShortcut(ShortcutOriFilePath); if (System.IO.File.Exists(shortcut.TargetPath)) { if (shortcut.TargetPath.Substring(shortcut.TargetPath.LastIndexOf("\\") + 1) == "iTunes.exe") { iTunes_PATH = shortcut.TargetPath; } else if (shortcut.TargetPath.Substring(shortcut.TargetPath.LastIndexOf("\\") + 1) == "NowplayingTunes.exe" || shortcut.TargetPath.Substring(shortcut.TargetPath.LastIndexOf("\\") + 1) == "なうぷれTunes.exe") { NowplayingTunes_PATH = shortcut.TargetPath; } } } else { if (ShortcutOriFilePath.Substring(ShortcutOriFilePath.LastIndexOf("\\") + 1) == "iTunes.exe") { iTunes_PATH = ShortcutOriFilePath; } else if (ShortcutOriFilePath.Substring(ShortcutOriFilePath.LastIndexOf("\\") + 1) == "NowplayingTunes.exe" || ShortcutOriFilePath.Substring(ShortcutOriFilePath.LastIndexOf("\\") + 1) == "なうぷれTunes.exe") { NowplayingTunes_PATH = ShortcutOriFilePath; } } } } } } }
private static void CreateObject() { settings Settings = settings.load(); string URL = Settings.sonarrURL + "/api/history?page=1&pageSize=" + Settings.sonarrMaxHistory + "&sortkey=date&sortDir=desc&apikey=" + Settings.sonarrAPI; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL); request.Method = "GET"; request.ContentType = "application/json"; //request.ContentLength = DATA.Length; try { WebResponse webResponse = request.GetResponse(); using (Stream webStream = webResponse.GetResponseStream()) { if (webStream != null) { using (StreamReader responseReader = new StreamReader(webStream)) { string response = responseReader.ReadToEnd(); JObject jo = JObject.Parse(response); Console.Write(jo.First); //open the response and parse it using JSON. Query for newly imported files foreach (JToken token in jo.SelectTokens("records[*].data.importedPath")) //jo.Children() { //go through these and create the link. bool found = false; foreach (grabbedFile g in Settings.recentGrabs) { if (g.filename == token.ToString()) { found = true; } } if(found == true) { Console.Out.WriteLine("Already processed " + token.ToString()); } else { Console.Out.WriteLine("Processing " + token.ToString()); string filename = Settings.destinationFolder + @"/" + Path.GetFileNameWithoutExtension(token.ToString()) + ".lnk"; string destination = token.ToString(); //apply any replacemenbts foreach (replacement r in Settings.replacements) { destination = destination.Replace(r.source, r.replace); } //craete the link file. var wsh = new IWshShell_Class(); IWshRuntimeLibrary.IWshShortcut shortcut = wsh.CreateShortcut(filename) as IWshRuntimeLibrary.IWshShortcut; shortcut.TargetPath = destination; shortcut.Save(); //log it Settings.recentGrabs.Add(new grabbedFile(token.ToString())); } } } } } Settings.save(); } catch (Exception e) { Console.Out.WriteLine("-----------------"); Console.Out.WriteLine(e.Message); } }