编写随Windows启动运行的程序

本文介绍了一种通过注册表设置Windows应用程序开机自启动的方法,并提供了一个VB.NET示例程序,演示了如何创建一个简单的界面来开启或关闭此功能。
通过设置和读取注册表,
可以实现我们的应用程序随Windows的启动即可执行的功能。
下面就是实现的代码:

form1.vb

importsMicrosoft.Win32.Registry
PublicClassForm1
InheritsSystem.Windows.Forms.Form

#region"Windows窗体设计器生成的代码"
PublicSubNew()
MyBase.New()
'该调用是Windows窗体设计器所必需的。
InitializeComponent()
'在InitializeComponent()调用之后添加任何初始化
EndSub

'窗体重写处置以清理组件列表。
ProtectedOverloadsOverridesSubDispose(ByValdisposingAsBoolean)
IfdisposingThen
IfNot(componentsIsNothing)Then
components.Dispose()
EndIf
EndIf
MyBase.Dispose(disposing)
EndSub

'Windows窗体设计器所必需的
PrivatecomponentsAsSystem.ComponentModel.IContainer

'注意:以下过程是Windows窗体设计器所必需的
'可以使用Windows窗体设计器修改此过程。
'不要使用代码编辑器修改它。
FriendWithEventsCheckBox1AsSystem.Windows.Forms.CheckBox
FriendWithEventsbtnSaveAsSystem.Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()>PrivateSubInitializeComponent()
Me.CheckBox1=NewSystem.Windows.Forms.CheckBox()
Me.btnSave=NewSystem.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=NewSystem.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=NewSystem.Drawing.Font("宋体",10.0!)
Me.btnSave.ForeColor=System.Drawing.SystemColors.ControlText
Me.btnSave.ImeMode=System.Windows.Forms.ImeMode.NoControl
Me.btnSave.Location=NewSystem.Drawing.Point(0,16)
Me.btnSave.Name="btnSave"
Me.btnSave.Size=NewSystem.Drawing.Size(144,24)
Me.btnSave.TabIndex=32
Me.btnSave.Text="保存设置"
'
'Form1
'
Me.AutoScaleBaseSize=NewSystem.Drawing.Size(5,13)
Me.ClientSize=NewSystem.Drawing.Size(144,40)
Me.Controls.AddRange(NewSystem.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)

EndSub

#endRegion

DimRegAsMicrosoft.Win32.RegistryKey
PrivateSubInitVar()
IfbtnSave.Visible=TrueThen

EndIf
Reg=CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run",True)
IfReg.GetValue("MengXianHui")<>""Then
CheckBox1.Checked=True
Else
CheckBox1.Checked=False
EndIf
EndSub
PrivateSubSaveSettings()
IfCheckBox1.Checked=TrueThen
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","")
EndIf
InitVar()
MessageBox.Show("您已经设置了,请重新启动计算机看效果。","提示",_
MessageBoxButtons.OK,MessageBoxIcon.Information)
IfCheckBox1.Checked=TrueThen
Me.Dispose(True)
EndIf
EndSub

PrivateSubbtnSave_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)_
HandlesbtnSave.Click
SaveSettings()
EndSub
EndClass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值