2011-11-15 15 views
1

就在最近,我已經開始使用Microsoft Visual Basic 2010 Express,並且正在創建一個將URL加載到瀏覽器組件的應用程序。啓動文件夾中的快捷方式不會加載Visual Basic應用程序的正確設置

用戶可以配置的其中一個設置是'在Windows啓動時啓動應用程序'。當此複選框被選中並且用戶保存他的首選項時,我會在Microsoft啓動文件夾中創建一個快捷方式,以便在Windows啓動時運行該應用程序。

我這樣做使用下面的代碼:

My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True).SetValue(Application.ProductName, Application.ExecutablePath) 
Dim startup As String = Environment.GetFolderPath(Environment.SpecialFolder.Startup) 
IO.File.Copy(Application.ExecutablePath, startup & "\ApplicationName.exe") 

的問題是,比我使用了Visual Basic使上安裝,位於桌面或開始菜單programfolder快捷方式,它加載設置由用戶定義。但是當啓動文件夾的快捷方式運行時,它會加載一個完全「新」的應用程序類型,並且所有的設置都是默認的。

任何知道我可能會做錯什麼的人?我已經搜索了互聯網很多,也看着像copying app shortcut to startup folder VB(這對我不起作用)StackOverflow主題

任何幫助將不勝感激。如果您需要更多信息,請詢問,我會盡快查找。

回答

1

您並未創建快捷方式,您正在將可執行文件複製到啓動文件夾! 這個複製的可執行文件不會在它附近找到一個配置文件,所以它會創建一個新的!這就是爲什麼它顯示的默認值.. 做一個快捷方式導入從「COM」選項卡中的「Windows腳本宿主對象模型」,在項目 - > refrences->添加...

Dim oShell As IWshRuntimeLibrary.WshShell 
Dim oShortCut As IWshRuntimeLibrary.WshShortcut 

oShell = New IWshRuntimeLibrary.WshShell 
oShortCut = oShell.CreateShortcut(Environment.GetFolderPath(Environment.SpecialFolder.Startup) & _ 
                "\" & GetFileName(Application.ExecutablePath) & ".lnk") 
Dim s = Environment.GetFolderPath(Environment.SpecialFolder.Startup) 
With oShortCut 
    .TargetPath = Application.ExecutablePath 
    .Arguments = "" 
    .WorkingDirectory = GetDirectoryName(Application.ExecutablePath) 
End With 
oShortCut.Save() 
oShortCut = Nothing : oShell = Nothing 
+0

感謝您的快速回復!我明天會先試一試,並告訴你它是否對我有用,或者如果我仍然有問題。 –

+0

要注意一件事:將值添加到註冊表中,並將快捷方式添加到啓動文件夾將使應用程序在系統啓動時啓動兩次! – UnLoCo

+0

啊,這是合乎邏輯的。我只會將它添加到啓動文件夾中,而不是在註冊表中。這是一個簡單的方法,可以解決問題。再次感謝! –

相關問題