通过设置和读取注册表,可以实现我们的应用程序随Windows的启动即可执行的功能。下面就是实现的代码:
Form1.vb
Imports
Microsoft.Win32.Registry
Public
Class
Form1
Inherits
System.Windows.Forms.Form
#region
" Windows 窗体设计器生成的代码 "
Public
Sub
New
()
MyBase
.New()
'
该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
'
在 InitializeComponent() 调用之后添加任何初始化
End Sub
'
窗体重写处置以清理组件列表。
Protected
Overloads
Overrides
Sub
Dispose(
ByVal
disposing
As
Boolean
)
If
disposing
Then
If
Not
(components
Is
Nothing
)
Then
components.Dispose()
End
If
End
If
MyBase
.Dispose(disposing)
End Sub
'
windows 窗体设计器所必需的
Private
components
As
System.ComponentModel.IContainer
'
注意:以下过程是 Windows 窗体设计器所必需的
'
可以使用 Windows 窗体设计器修改此过程。
'
不要使用代码编辑器修改它。
Friend
WithEvents
CheckBox1
As
System.Windows.Forms.CheckBox
Friend
WithEvents
btnSave
As
System.Windows.Forms.Button
<
System.Diagnostics.DebuggerStepThrough()
>
Private
Sub
InitializeComponent()
Me
.CheckBox1
=
New
System.Windows.Forms.CheckBox()
Me
.btnSave
=
New
System.Windows.Forms.Button()
Me
.SuspendLayout()
'
'
CheckBox1
'
Me
.CheckBox1.BackColor
=
System.Drawing.SystemColors.Control
Me
.CheckBox1.Checked
=
True
Me
.CheckBox1.CheckState
=
System.Windows.Forms.CheckState.Checked
Me
.CheckBox1.ForeColor
=
System.Drawing.SystemColors.ControlText
Me
.CheckBox1.ImeMode
=
System.Windows.Forms.ImeMode.NoControl
Me
.CheckBox1.Name
=
"
CheckBox1
"
Me
.CheckBox1.RightToLeft
=
System.Windows.Forms.RightToLeft.Yes
Me
.CheckBox1.Size
=
New
System.Drawing.Size(
142
,
15
)
Me
.CheckBox1.TabIndex
=
21
Me
.CheckBox1.Text
=
"
Windows开机即运行
"
Me
.CheckBox1.TextAlign
=
System.Drawing.ContentAlignment.MiddleRight
'
'
btnSave
'
Me
.btnSave.BackColor
=
System.Drawing.SystemColors.Control
Me
.btnSave.Font
=
New
System.Drawing.Font(
"
宋体
"
,
10.0
!)
Me
.btnSave.ForeColor
=
System.Drawing.SystemColors.ControlText
Me
.btnSave.ImeMode
=
System.Windows.Forms.ImeMode.NoControl
Me
.btnSave.Location
=
New
System.Drawing.Point(
0
,
16
)
Me
.btnSave.Name
=
"
btnSave
"
Me
.btnSave.Size
=
New
System.Drawing.Size(
144
,
24
)
Me
.btnSave.TabIndex
=
32
Me
.btnSave.Text
=
"
保存设置
"
'
'
Form1
'
Me
.AutoScaleBaseSize
=
New
System.Drawing.Size(
5
,
13
)
Me
.ClientSize
=
New
System.Drawing.Size(
144
,
40
)
Me
.Controls.AddRange(
New
System.Windows.Forms.Control() {
Me
.btnSave,
Me
.CheckBox1})
Me
.FormBorderStyle
=
System.Windows.Forms.FormBorderStyle.FixedToolWindow
Me
.Name
=
"
Form1
"
Me
.StartPosition
=
System.Windows.Forms.FormStartPosition.CenterScreen
Me
.Text
=
"
Windows开机即运行
"
Me
.ResumeLayout(
False
)
end Sub
#end Region
dim
Reg
As
Microsoft.Win32.RegistryKey
Private
Sub
InitVar()
If
btnSave.Visible
=
True
Then
end
If
Reg
=
CurrentUser.OpenSubKey(
"
Software/Microsoft/Windows/CurrentVersion/Run
"
,
True
)
If
Reg.GetValue(
"
MengXianHui
"
)
<>
""
Then
CheckBox1.Checked
=
True
Else
CheckBox1.Checked
=
False
End
If
End Sub
Private
Sub
SaveSettings()
If
CheckBox1.Checked
=
True
Then
Reg
=
CurrentUser.OpenSubKey(
"
Software/Microsoft/Windows/CurrentVersion/Run
"
,
True
)
Reg.SetValue(
"
MengXianHui
"
, Application.ExecutablePath)
Else
Reg
=
CurrentUser.OpenSubKey(
"
Software/Microsoft/Windows/CurrentVersion/Run
"
,
True
)
Reg.SetValue(
"
MengXianHui
"
,
""
)
End
If
InitVar()
MessageBox.Show(
"
您已经设置了,请重新启动计算机看效果。
"
,
"
提示
"
, _
MessageBoxButtons.OK, MessageBoxIcon.Information)
If
CheckBox1.Checked
=
True
Then
Me
.Dispose(
True
)
End
If
End Sub
private
Sub
btnSave_Click(
ByVal
sender
As
System.Object,
ByVal
e
As
System.EventArgs) _
Handles
btnSave.Click
SaveSettings()
End Sub
End Class