編寫隨Windows啟動啟動並執行程式
通過設定和讀取註冊表,
可以實現我們的應用程式隨Windows的啟動即可執行檔功能。
下面就是實現的代碼:
Code:
- 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("SoftwareMicrosoftWindowsCurrentVersionRun", 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("SoftwareMicrosoftWindowsCurrentVersionRun", True)
- Reg.SetValue("MengXianHui", Application.ExecutablePath)
- Else
- Reg = CurrentUser.OpenSubKey("SoftwareMicrosoftWindowsCurrentVersionRun", 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