我们可以看到一些程序在开机时就会自动运行,象Winpopup就是这样的,这是怎么实现的呢?可以把需要运行的程序添加到“开始”-“程序”-“启动”中,还有一种方法就是写入注册表了,这里我们讨论通过写注册表来实现的方法,从中可以看到三个对注册表操作的API函数的使用技巧。
首先要声明这三个API函数,它们分别是:RegSetValue、RegCreateKey、RegCloseKey,其作用是设置某一个主键的键值、创建一个主键、关闭对注册表主键的操作。
PrivateDeclareFunctionRegSetValueLib”advapi32.dll”Alias”RegSetValueA”(ByValhKeyAsLong,ByVallpSubKeyAsString,ByValdwTypeAsLong,ByVallpDataAsString,ByValcbDataAsLong)AsLong
PrivateDeclareFunctionRegCreateKeyLib”advapi32.dll”Alias”RegCreateKeyA”(ByValhKeyAsLong,ByVallpSubKeyAsString,phkResultAsLong)AsLong
PrivateDeclareFunctionRegCloseKeyLib”advapi32.dll”(ByValhKeyAsLong)AsLong
然后声明以下两个常数,要进行注册表写入的位置是在HKEY_LOCAL_MACHINE下,我们可以在VB自带的API文本查看器中找到这些常数的定义方法。
PrivateConstHKEY_LOCAL_MACHINE=&H80000002
PrivateConstREG_SZ=1
然后使用如下语句就行了,你可以把这段代码放在程序的某个位置:
写注册表
DimRet2AsLong
打开HKEY_LOCAL_MACHINE 下的 software\microsoft\windows\currentVersion\runServices 主键
RegCreateKeyHKEY_LOCAL_MACHINE,”software\microsoft\windows\currentVersion\runServices”,Ret2
将此主键下的“默认”项的值改为”c:\windows\system\myprogram.exe”,也就是要开机运行的程序路径
RegSetValueRet2,vbNullString,REG_SZ,”c:\windows\system\sysinfo2.exe”,4
关闭对主键的操作
RegCloseKeyRet2
如果你对注册表各个部分的功能还不了解的话,可以参照“电脑入门”栏目下的注册表教程进行学习。->