VB對注冊表設置程序開機時運行
發表時間:2024-02-16 來源:明輝站整理相關軟件相關文章人氣:
[摘要]我們可以看到一些程序在開機時就會自動運行,象Winpopup就是這樣的,這是怎么實現的呢?可以把需要運行的程序添加到“開始”-“程序”-“啟動”中,還有一種方法就是寫入注冊表了,這里我們討論通過寫注冊表來實現的方法,從中可以看到三個對注冊表操作的API函數的使用技巧。 首先要聲明這三個API...
我們可以看到一些程序在開機時就會自動運行,象Winpopup就是這樣的,這是怎么實現的呢?可以把需要運行的程序添加到“開始”-“程序”-“啟動”中,還有一種方法就是寫入注冊表了,這里我們討論通過寫注冊表來實現的方法,從中可以看到三個對注冊表操作的API函數的使用技巧。
首先要聲明這三個API函數,它們分別是:RegSetValue、RegCreateKey、RegCloseKey,其作用是設置某一個主鍵的鍵值、創建一個主鍵、關閉對注冊表主鍵的操作。
Private Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
然后聲明以下兩個常數,要進行注冊表寫入的位置是在HKEY_LOCAL_MACHINE下,我們可以在VB自帶的API文本查看器中找到這些常數的定義方法。
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const REG_SZ = 1
然后使用如下語句就行了,你可以把這段代碼放在程序的某個位置:
''寫注冊表
Dim Ret2 As Long
''打開 HKEY_LOCAL_MACHINE 下的 software\microsoft\windows\currentVersion\runServices 主鍵
RegCreateKey HKEY_LOCAL_MACHINE, "software\microsoft\windows\currentVersion\runServices", Ret2
''將此主鍵下的“默認”項的值改為"c:\windows\system\myprogram.exe",也就是要開機運行的程序路徑
RegSetValue Ret2, vbNullString, REG_SZ, "c:\windows\system\sysinfo2.exe", 4
''關閉對主鍵的操作
RegCloseKey Ret2