Vb.net 如何使我的程序在启动时运行?

Vb.net 如何使我的程序在启动时运行?,vb.net,startup,Vb.net,Startup,我正在编写一个类似于Google desktop的桌面应用程序,但使用我自己的vb.net 2008小工具,当用户在启动时将应用程序安装到他们的计算机上运行时,我如何使应用程序运行 假设我的应用程序名为windowsAplication1,我使用的是windows XP,该程序将安装在C驱动器上?您可以使用以下代码将其添加到注册表中 My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVe

我正在编写一个类似于Google desktop的桌面应用程序,但使用我自己的vb.net 2008小工具,当用户在启动时将应用程序安装到他们的计算机上运行时,我如何使应用程序运行


假设我的应用程序名为windowsAplication1,我使用的是windows XP,该程序将安装在C驱动器上?

您可以使用以下代码将其添加到注册表中

My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True).SetValue(Application.ProductName, Application.ExecutablePath)
您可以使用

My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True).DeleteValue(Application.ProductName)
上面的代码将它添加到所有用户。您可以使用以下键将其添加到当前用户

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
或者,您可以在“启动”文件夹中添加应用程序的链接

我建议你不要自动这样做,它可能会激怒用户。我讨厌应用程序自动将它们添加到Windows启动中。为用户提供在windows启动时运行程序的选项。

请简单使用以下代码:

Dim info As New FileInfo(application.startuppath)
info.CopyTo(My.Computer.FileSystem.SpecialDirectories.Programs + "\startup\myapp.exe")

希望有帮助。

您可以使用下面的代码完成此操作

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    ' This is where you'll need to have the program
    ' set the check box to the previous selection that
    ' the user has set. It's up to you how you do this.
    ' For now, I'll set it as "unchecked".

    CheckBox1.Checked = False

  End Sub

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    ' The following code is a rendition of one provided by
    ' Firestarter_75, so he gets the credit here:

    Dim applicationName As String = Application.ProductName
    Dim applicationPath As String = Application.ExecutablePath

    If CheckBox1.Checked Then
      Dim regKey As Microsoft.Win32.RegistryKey
      regKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
      regKey.SetValue(applicationName, """" & applicationPath & """")
      regKey.Close()
    Else
      Dim regKey As Microsoft.Win32.RegistryKey
      regKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
      regKey.DeleteValue(applicationName, False)
      regKey.Close()
    End If

    ' Assuming that you'll run this as a setup form of some sort
    ' and call it using .ShowDialog, simply close this form to
    ' return to the main program
    Close()
    End Sub
一种简单的方法

Imports Microsoft.Win32

...

Dim regKey As RegistryKey
regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run",True)
regKey.SetValue(Application.ProductName, Application.ExecutablePath)
regKey.Close()
希望它有帮助

请尝试以下代码:-

FileCopy("Name.Ext", Environment.GetFolderPath(Environment.SpecialFolder.Startup) & "\Name.Ext")
此处(Name.Ext):-

Name—应用程序的名称。
Ext-扩展名,当然是.exe


这是最简单和最好的使用方法。

可能是老话题,但添加了
Imports Microsoft.Win32

...

Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", Application.ProductName, Application.ExecutablePath, RegistryValueKind.String)
导入System.Security.AccessControl.RegistryRights
应解决System.Security.SecurityException:'不允许请求的注册表访问。'Christhofer Natalius指出的问题

请尽快回复我:)只需使用简单的方法1)在桌面上创建应用程序的快捷方式2)复制它3)转到启动>>程序>>在此处启动“右键单击”使用鼠标并选择“打开>>这将打开“开始”菜单的位置。。4) 将复制的快捷方式粘贴到此处。。5) 下一次重新启动完成此程序将在启动时自动启动:)是否可以在启动窗口而不是在启动用户会话时启动可执行文件?我发现异常用户未处理。System.Security.SecurityException:'不允许请求的注册表访问。'如何修复此问题?我不想强制用户右键单击>以管理员身份运行。@ChristhoferNatalius我在windows 10上对所有用户都有相同的问题,您解决了吗?@Web.11我放弃注册表,只在启动文件夹中创建快捷方式。如果您的程序依赖于DLL等文件,您还必须将它们复制到启动路径,以便程序在启动后正确运行。但这样做可能会让你的创业道路上充斥着这些文件。因此,我建议最好先以编程方式创建程序的快捷链接文件,然后将此快捷链接文件复制到启动路径。如果您的程序依赖于DLL等文件,则您还必须将这些文件复制到启动路径,以便程序启动后能正常运行。但这样做可能会让你的创业道路上充斥着这些文件。因此,我建议最好先以编程方式创建程序的快捷链接文件,然后将此快捷链接文件复制到启动路径。