首页 > 学院 > 开发设计 > 正文

VB对注册表操作程序开机时运行

2019-11-18 17:40:36
字体:
来源:转载
供稿:网友
我们可以看到一些程序在开机时就会自动运行,象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

  如果你对注册表各个部分的功能还不了解的话,可以参照“电脑入门”栏目下的注册表教程进行学习。->


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表