网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Visual Basic
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.在VB中调用CHM帮助的几种方法.
.VisualBasic控件简介.
.多用户应用程序中应注意的其它问.
.在GotFocus时快速选择文本.
.在VB应用软件中实现动画效果.
.教你在VB中操作DataGrid视图.
.VB6制作Win98风格的工具栏.
.VB编程经验点滴.
.用VB实现类电子表格的数据录入.
.VisualBasic中实现绘图区的大十字.
.浅谈Excel的VB编程.
.用VB编写入侵监听程序(下).
.用VisualBasic也可以实现P2P.
.用OLE自动化Outlook.
.在VB中操纵OLE服务器应用程序.
.使用VB收发电子邮件.
.ADO三大对象的属性、方法、事件及.
.(空字串)、Null、Empty、与Nothi.
.用Winsock控件实现文件的下载.
.正确的除错(Debug)方式.

教你在VB中如何使用注册表

发表日期:2006-2-27


Windows系统中的注册表(Resgister)保存着大量的信息,我们可读写注册表来更好地为我们软件服务。
  下面详细讲叙如何通过调用API函数操作注册表:如何打开、创建主键,如何保存键值,以及查询某键的键值等。

  一、常数定义和API申明(我们会在使用该API时对它进行说明):  PrivateConstHKEY_CLASSES_ROOT=&H80000000主键
  PrivateConstHKEY_CURRENT_USER=&H80000001主键
  PrivateConstSTANDARD_RIGHTS_ALL=&H1F0000
  PrivateConstKEY_ENUMERATE_SUB_KEYS=&H8
  PrivateConstKEY_SET_VALUE=&H2
  PrivateConstKEY_CREATE_SUB_KEY=&H4
  PrivateConstKEY_QUERY_VALUE=&H1
  PrivateConstKEY_NOTIFY=&H10
  PrivateConstKEY_CREATE_LINK=&H20
  PrivateConstSYNCHRONIZE=&H100000
  PrivateConstKEY_ALL_ACCESS=((STANDARD_RIGHTS_ALLOrKEY_QUERY_VALUEOrKEY_SET_VALUEOrKEY_CREATE_SUB_KEYOrKEY_ENUMERATE_SUB_KEYSOrKEY_NOTIFYOrKEY_CREATE_LINK)And(NotSYNCHRONIZE))
  PrivateConstREG_MULTI_SZ=7
  PrivateConstERROR_SUCCESS=0&
  PrivateConstREAD_CONTROL=&H20000
  PrivateConstREG_SZ=1
  PrivateConstREG_DWORD=4
  PrivateConstREG_EXPAND_SZ=2
  PrivateConstREG_BINARY=3
  PrivateConstREG_DWORD_BIG_ENDIAN=5
  PrivateConstREG_DWORD_LITTLE_ENDIAN=4
  PrivateConstREG_NONE=0
  PrivateDeclareFunctionRegOpenKeyExLib“advapi32.dll"Alias“RegOpenKeyExA"(ByValhKeyAsLong,ByVallpSubKeyAsString,ByValulOptionsAsLong,ByValsamDesiredAsLong,phkResultAsLong)AsLong
  PrivateDeclareFunctionRegCreateKeyLib“advapi32.dll"Alias“RegCreateKeyA"(ByValhKeyAsLong,ByVallpSubKeyAsString,phkResultAsLong)AsLong
  PrivateDeclareFunctionRegSetValueExLib“advapi32.dll"Alias“RegSetValueExA"(ByValhKeyAsLong,ByVallpValueNameAsString,ByValReservedAsLong,ByValdwTypeAsLong,lpDataAsAny,ByValcbDataAsLong)AsLong
  PrivateDeclareFunctionRegQueryValueExLib"advapi32.dll"Alias"RegQueryValueExA"(ByValhKeyAsLong,ByVallpValueNameAsString,ByVallpReservedAsLong,lpTypeAsLong,lpDataAs

  Any,lpcbDataAsLong)AsLongPrivateDeclareFunctionRegCloseKeyLib"advapi32.dll"(ByValhKeyAsLong)AsLong

  二、将下列代码放在窗体的Load事件中
  PrivateSubForm_Load()
  DimhKeyAsLong主键的句柄
  DimlpDataAsString查询得到的键值
  DimSizeOfDataAsLong键值的长度
  DimValueTypeAsLong键值的类型
  SizeOfData=150
  Dimreturn_OpenKeyAsLong函数调用的返回值
  DimPriKeyAsString主键
  DimKeyValue1,KeyValue2AsString键值名称
  PriKey="北信BITI\People"主键
  KeyValue1="教授"键值名称
  KeyValue2="学生"键值名称
  下面的函数RegOpenKeyEx取得一个句柄hKey

return_OpenKey=RegOpenKeyEx(HKEY_CURRENT_USER,"",0,KEY_ALL_ACCESS,hKey)
 
  下面的函数RegCreateKey建立一个主键,如此键已存在,则打开它IfRegCreateKey(hKey,PriKey,hKey)<>ERROR_SUCCESSThen
MsgBox"create"&PriKey&"Failed"
ExitSub
EndIf
  
DimKeyDataAsString键值
KeyData="500"

  下面的函数RegSetValueEx给指定的键值名称赋键值

IfRegSetValueEx(hKey,KeyValue1,0&,REG_SZ,ByValKeyData,Len(KeyData)+1)<>ERROR_SUCCESSThen
  MsgBox"SetValue"&KeyValue1&"Failed"
  ExitSub
  EndIf
  KeyData="15020"

  下面的函数RegSetValueEx给指定的键值名称"学生"赋键值为"15020"

IfRegSetValueEx(hKey,KeyValue2,0&,REG_SZ,ByValKeyData,Len(KeyData)+1)<>ERROR_SUCCESSThen
MsgBox"SetValue"&KeyValue2&"Failed"
ExitSub
EndIf
  
return_OpenKey=RegQueryValueEx(hKey,KeyValue1,0&,REG_SZ,0&,SizeOfData)
lpData=String(SizeOfData+1,"")

  下面的函数RegQueryValueEx检索指定键值名称的键值和键值类型

IfRegQueryValueEx(hKey,KeyValue1,0&,REG_SZ,ByVallpData,SizeOfData)<>ERROR_SUCCESSThen
MsgBox"Query"&KeyValue1&"Failed"
EndIf
RegCloseKey(hKey)释放主键的句柄
EndSub

  运行此程序后,打开注册表,我们会发现在主键HKEY_CURRENT_USER(在此主键下记录本机当前用户的一些信息)下,增加了子键"北信BITI\People",我们还可看到两个指定的键值名称都有正确的键值。从而完成了注册的任务。

  注:此程序在VB5.0中运行通过。

->

上一篇:如何在VB中截获shell程序的输出 人气:4461
下一篇:VB查找并替换WORD文档中的字符串 人气:3542
浏览全部Visual Basic的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐