用VB编写自定义过程修改注册表_第1页
用VB编写自定义过程修改注册表_第2页
用VB编写自定义过程修改注册表_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、收稿日期: 2003 - 02 - 19作者简介:王治(1974 - ) ,男,九江教育学院教师。用vb编写自定义过程修改注册表王治1虞芬2(11 九江教育学院, 21九江职业技术学院,江西九江 332000 )摘 要:本文尝试在用visual basic编写的自定义过程调用windows api函数来实现windows注册表的访问,修改以及查询等操作,从而可以把这些自定义过程添加到一个vb的项目工程中去,进而可以完成一个属于自己的注册表管理软件。关键词:注册表;键值;键;自定义过程; api函数中图分类号:tp312文献标识码: b 文章编号: 1009 - 9522(2003)02 - 0

2、023 - 03compiling self - definitionprocesswithvb to modifyregistration formwan g zhiyu fen(jiujiang college of education ,jiujiang city ,jiangxi province ,332000 ,jiujiang vocational& technical college ,jiujiang city ,jiangxi province ,332007 )abstract : a registrationform management software ca

3、n be achieved by adding the self - definition process ofvisiting ,modifyingand inquiringthe windowsregistration formto a vb project throughapi function.key words : registration form , key value , key ,self - definitionprocess ,api function一 、前言在 windows9x/ n t 下 , 所有的状态信息都存放在操作系统所提供注册表( registry)中 。

4、通过对注册表的访问不仅可以实现对本地机的管理,也可以用网络注册项工具进行网络诊断和管理。笔者尝试在用visual basic 编写的自定义过程调用windows api 函数来实现windows 注册表的访问,修改以及查询等操作, 从而可以把这些自定义过程添加到一个vb 的项目工程中去, 进而可以完成一个属于自己的注册表管理软件。二 、注册表结构简介注册项文件是一个树形, 以层次结构进行组织的数据库, 它被分为两个文件进行存储: 一部分主要存放本机的系统设置等内容(通常是system.da t) ; 另一部分则主要包含有关指定用户的信息(user.da t) 。hkeycurren t con

5、fig 和h keyd ynda ta 分别存储工作站的当前硬件配置以及部分设备的动态状态, 包括 pnp。实际上 , 前者的内容是hkeylocalmachin e的一个拷贝, 而后者并不是注册项文件的一部分, 它是动态创建的。每个注册项子树下都有数个/ 层子键, 每个子键都有一个或数个值, 每个值项有三部分: 名称 、数据类型和值本身。值的数据类型有:regsz字符串regdword 1 - 8 个 16 进制数字的串regbinar y 16 进制数字的串, 每对作为一个字节值解释在 windowsn t 中 , 值的数据类型还有regexpandsz和 regmul tisz, 其中前

6、者与regsz类似 , 但文本可包含可替换的变量; 后者允许多个“ 值”, 每个“ 值”作为mul tisz的成份 。在 windows95 中 , 数 据 类 型 还 有 regl in k。32200312九 江 职 业 技 术 学 院 学 报(王治 : 用 vb 编写自定义过程修改注册表)三 、基本实现方法为了获得一个键的句柄( handle) , 必须从子树开始 , 遍历注册项树, 直到找到指定键。通常需要读写子树hkeycu rren tuser 以及 h keylocalmachin e。如果指定键已存在, 用户可以调用windows api 函数regopen key 或 re2

7、gopenkeyex ; 如需要创建新的键, 则调用 regcre2atekey 和 regcreatekeyex 。用 regsetvalue 和 regsetvalueex 设置键值,但前者只允许一个键对应一个键值, 并且该键值的类型必须是regsz; 而后者则允许一个键有多个键值 , 并且键值类型不受限制。下面给出自定义过程的源代码:1、创建新键过程名称 : creatnew key参数 snew keyname类型为字符型, 用于接受新键名称参数 1predefinedkey 为长整型, 用于确定新键所在的主键源代码如下:privatesubcreatenewkey( snew key

8、nameasstring , 1predefined key as long)dim hnew key as long 新键的句柄dim 1retval as long regcreatekeyex 函数返回结果 下面调用api函数regcreatekeyex创建新键1retval= regcreatekeyex( 1predefined key ,snew keyname , 0 & ,vbnu11string ,regoptionnonvola til e, keyallaccess , 0 & ,hnew key ,1retval )regclosekey (hnew k

9、ey) 关闭新键句柄end sub调用该过程:createnewkey “ testkey ” ,h keycur2ren tuser这样 , 就可以在h keycurren tuser下创建了一个名为“testkey”的新键 。调用该过程:createnewkey“ testkeysubkey1subkey2”, h keylocalmachin e则在 h keycu rren tuser 下创建了以testkey为首的三层嵌套的子键,其中:subkey1 在testkey 之 下 , subkey3 在 sub2key2之下 。2、设置 / 修改键值下面这个过程设置一个键的键值名称(na

10、me ofthe value) 及数值 、类型 。对于已存在的键名, 可指定一个新值以改变当前值。过程名: setkeyvalue参数 : skeyname 为字符型, 作用是接受主键名称参数 : svaluename 为字符型, 作用是确定键值名称参数 : svaluename 为变体类型, 作用为接受键值参数 : 1value type 为长整型, 用于接受键值privatesub setkeyvalue( skeynameasstring ,svaluename as string ,vvaluesetting as variant , 1value type as long)dim 1

11、retval as long setvaluebx 函数返回值dim hkey as long 键的句柄 打开指定键api 函数1retval=regopenkeyex( h keycu r2ren tuser , skeyname , 0 ,keyallaccess , hkey)1retval=setvalueex(hkey , svaluename ,1value type ,vvaluesetting )regclosekey (h key)end sub调用该过程:setkeyvalue“ testkeysubkey1”,“string2value” ,“hello”, regsz则

12、 在h keycu rren tuser的 子 键testkeysubkey1 下建立了一个其类型为regsz, 名称为 stringvalue 的新值 , 它的数值为“hel2lo” 。注意 : 如果子键“ testkeysubkey1”不 存在 , regopenkeyex 将导致错误, 为避免这种情况,笔者使用regcreatekeyex 以获取键的句柄。对于一个已存在的键, 函数regcreatekeyex 将打开该键 。(下转第 28 页)42200312九 江 职 业 技 术 学 院 学 报journal of jiujiang vocational& technical

13、college在完成时域分析法、频率特性法后,用两个课时,举一个开环传递函数为g (s)=16s (s+ 42)的二阶单位反馈系统为例进行课堂演算, 得时域分析主要参数 : 单位阶跃响应超调量p= 413 %、调节时间ts= 113s、稳态误差ess= 0 (xi(t)= 1 时 ) 或 ess= 1(xi(t)= t 时) , 利用 bode 图得频率特性主要参数 : 开环频率相角裕度= 6314 、幅值裕度kg=、剪切频率c= 16rad/ s。通过演算, 复习了两种工程方法的计算要领和手段,分析了两种工程分析方法的差别: 频率法的相角裕度、幅值裕度kg不但能同时域法一样判断系统稳定性,

14、还能判断系统稳定程度 。最后 , 提出系统性能要求为剪切频率c= 10rad/ s、相角裕度 45 、幅值裕度kg10db ,就需要增加校正装置, 十分自然的为后续系统校正环节的教学作铺垫。自动控制理论的总体框架就较好地建立起来了, 学生对自动控制理论便有一个完整的概念 。2、以实验为手段, 以课程设计为核心实验是专业课教学的重要环节。在教师指导下 , 学生通过直观感知获得知识和掌握技能。实验是在理论知识学习基础上完成的。可先化整为零,完成各环节实验, 最后综合试验, 完成系统控制工作原理 。实验加深了对理论的理解,也提高了动手能力 。课程设计能使学生完成一个完整的系统设计过程 。根据系统的结

15、构, 各单位间相互关系和参数,确定系统固有部分的数学模型; 对系统的固有部分的框图进行近似处理与简化, 在此基础上求得系统固有部分的频率特性; 根据使用要求, 确定系统的稳态和动态指标; 再根据性能指标的要求, 确定预期特性 ; 将系统固有部分的频率特性和预期频率特性进行比较,确定校正装置结构与参数。学生进行设计通常并不十分清楚设计的步骤、方法和实际系统近似处理, 仅作一些通常的讲述效果一般 。由于课程设计需要通过答辩考核, 可根据系统设计内容, 准备几十个大小不同、层次不一、较全面的答辩题目, 在给出设计题目时, 将有难度的 、指导性的 、工程设计特殊性的题目公布。这样有利于学生针对性进行设

16、计,准备答辩,也有利于指导学生设计。使学生掌握应用理论知识、形成解决实际问题的能力。最后 , 笔者想指出的是, 类似于自动控制原理这样的课程, 教师应当紧跟时代的脉搏, 熟悉课程的最新发展动态, 了解生产第一线的需求, 在教学过程中把握“必须 、够用”原则, 理论结合实际 , 对课程的教学方法、教学手段、教学内容和教学目标不断的加以改进, 体现高职教学学以致用的特点 。(责任编辑 王丽娟 )(上接第 24 页)3、 取键值过程名称 :queryvalue参数:skeyname为string类型,用于接受键名参数 :svaluename 为 string 类型 ,用于指定要获取键值的键名private sub queryvalue ( skeyname as string ,svaluename as string)dim 1retval as long api 函数返回值dim hkey as long 键的句柄dim vvalue as variant 存放查询结果的变量 下面调用api 函数 :1retval = regopenkeyex (h keycu rren tuser ,skeyname ,0 ,keyallaccess ,h key)1retval = queryvalueex( hkey , svaluename ,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论