編寫隨Windows啟動自動啟動並執行程式
通過設定和讀取註冊表,可以實現我們的應用程式隨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
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