
VB.NET项目 实现开机自启
步骤1:添加注册表操作类
在项目中新建一个类文件 AutoStartHelper.vb
,粘贴以下代码:
Imports Microsoft.Win32
Imports System.IO
Public Class AutoStartHelper
Private Const RunRegistryKey As String = "Software\Microsoft\Windows\CurrentVersion\Run"
Private Shared ReadOnly AppName As String = "MyApplicationName" ' 自定义应用标识名'
''' <summary>
''' 获取当前程序路径(自动处理空格)
''' </summary>
Public Shared ReadOnly Property AppPath As String
Get
Return """" & Application.ExecutablePath & """"
End Get
End Property
''' <summary>
''' 启用/禁用自启动
''' </summary>
Public Shared Sub SetAutoStart(enable As Boolean)
Try
Using key = Registry.CurrentUser.OpenSubKey(RunRegistryKey, True)
If enable Then
key.SetValue(AppName, AppPath)
Else
key.DeleteValue(AppName, False)
End If
End Using
Catch ex As Exception
MessageBox.Show($"操作注册表失败: {ex.Message}")
End Try
End Sub
''' <summary>
''' 检查当前自启动状态
''' </summary>
Public Shared Function IsAutoStartEnabled() As Boolean
Try
Using key = Registry.CurrentUser.OpenSubKey(RunRegistryKey, False)
Dim value = key.GetValue(AppName)
Return value IsNot Nothing AndAlso value.ToString() = AppPath
End Using
Catch ex As Exception
Return False
End Try
End Function
End Class
步骤2:创建设置界面
在窗体设计器中添加控件:
- 添加一个
CheckBox
控件,Name属性设为chkAutoStart
- 添加一个
Button
控件,Name属性设为btnSave
,Text设为 "保存设置"
窗体代码 Form1.vb
:
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 窗体加载时更新复选框状态'
chkAutoStart.Checked = AutoStartHelper.IsAutoStartEnabled()
End Sub
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
' 保存设置时应用选择'
AutoStartHelper.SetAutoStart(chkAutoStart.Checked)
MessageBox.Show("设置已保存,重启后生效")
End Sub
Private Sub chkAutoStart_CheckedChanged(sender As Object, e As EventArgs) Handles chkAutoStart.CheckedChanged
' 实时显示状态文本'
lblStatus.Text = If(chkAutoStart.Checked, "已启用开机自启动", "已禁用开机自启动")
End Sub
End Class
步骤3:添加状态标签(可选)
在窗体上添加一个 Label
控件:
- Name属性设为
lblStatus
- Text属性清空
- AutoSize设为True
步骤4:添加管理员权限支持(如果需要全局设置)
- 右键项目 -> 添加 -> 新建项 -> 应用程序清单文件
- 找到并修改清单文件中的
<requestedExecutionLevel>
节点:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
项目结构示意图
你的项目
├── Form1.vb (主窗体)
├── AutoStartHelper.vb (注册表操作类)
├── app.manifest (权限配置文件)
└── My Project
└── Application.myapp
使用说明
- 程序启动时会自动检测当前自启动状态
- 用户通过复选框切换启用/禁用状态
- 点击"保存设置"按钮应用更改
- 状态标签会实时显示当前设置状态
扩展建议
- 添加设置持久化(使用
My.Settings
保存用户偏好) - 实现自动检测程序路径变化
- 添加UAC盾牌图标(管理员模式时显示)
- 支持多用户/全局设置切换
完整项目可通过以下方式验证:
- 运行程序并勾选复选框
- 打开注册表编辑器定位到:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
- 查看是否存在对应的注册表项
- 重启系统验证程序是否自启动
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 菰城鸥鹭的大学之道
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果