1

就在最近,我开始使用 Microsoft Visual Basic 2010 Express,并且正在创建一个将 URL 加载到浏览器组件中的应用程序。

用户能够配置的设置之一是“在 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 在安装时创建的快捷方式(位于桌面或开始菜单程序文件夹)时,它会加载用户定义的设置。但是,当启动文件夹中的快捷方式运行时,它会加载一个完全“新”的应用程序,所有设置都是默认设置。

有谁知道我可能做错了什么?我在网上搜索了很多,还查看了 StackOverflow 主题,例如将应用程序快捷方式复制到启动文件夹 VB(这对我不起作用)

任何帮助将不胜感激。如果您需要更多信息,请询问,我会尽快查找。

4

1 回答 1

1

您不是在创建快捷方式,而是将可执行文件复制到启动文件夹!这个复制的可执行文件在它附近找不到配置文件,所以它会创建一个新的!这就是为什么它显示默认值..从项目->参考->添加...的“COM”选项卡中创建快捷方式导入“Windows脚本宿主对象模型”

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
于 2011-11-15T13:48:48.060 回答