2013-02-06 102 views
0

我基本上想檢查當前程序是否已經鏈接到Windows啓動文件夾,即使該文件有另一個名稱或從另一個目錄運行。這是可能的,也許通過檢查程序的名字?檢查啓動文件夾是否已經包含程序

PS:我用這個代碼,以我的程序鏈接到啓動文件夾:

using (ShellLink shortcut = new ShellLink()) { 
    shortcut.Target = Application.ExecutablePath; 
    shortcut.WorkingDirectory = Path.GetDirectoryName(Application.ExecutablePath); 
    shortcut.Description = "My Shorcut Name Here"; 
    shortcut.DisplayMode = ShellLink.LinkDisplayMode.edmNormal; 
    shortcut.Save(Environment.GetFolderPath(Environment.SpecialFolder.Startup)); 
} 

感謝。

回答

0

您需要掃描啓動的開始菜單文件夾,併爲每個快捷方式比較目標路徑與程序的路徑。

WshShell shell = new WshShell(); 
var link = (IWshShortcut)shell.CreateShortcut(linkPathName); //Link the interface to our shortcut 
var target = link.TargetPath; 
//compare to your program's path... 
+0

難道應用程序可能從任何位置運行,就像我上面寫的那樣?所以它不應該檢查路徑,它應該檢查程序的名稱/ ID(如果類似的東西存在)。 – Marius

+0

然後你必須在運行時獲得程序的路徑,這個http://msdn.microsoft.com/en-us/library/system.windows.forms.application.startuppath.aspx – CharlesB

+0

感謝您的網址! – Marius

0

試着寫一個木馬? = D

簡單的解決方案:枚舉啓動文件夾中的所有快捷方式(lnk文件),全部打開它們並看到(我假設您使用的是this技術)。

+0

我不寫一個木馬;)。查看我在CharlesB的帖子中的評論。 – Marius

相關問題