VB對注冊表操作程序開機時運行

發表于:2007-07-14來源:作者:點擊數: 標簽:
我們可以看到一些程序在開機時就會自動運行,象Winpopup就是這樣的,這是怎么實現的呢?可以把需要運行的程序添加到“開始”-“程序”-“啟動”中,還有一種方法就是寫入注冊表了,這里我們討論通過寫注冊表來實現的方法,從中可以看到三個對注冊表操作的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  

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97