VB修改注册表

上传人:oq****t 文档编号:1778011 上传时间:2017-07-14 格式:TXT 页数:6 大小:9.44KB
返回 下载 相关 举报
VB修改注册表_第1页
第1页 / 共6页
VB修改注册表_第2页
第2页 / 共6页
VB修改注册表_第3页
第3页 / 共6页
VB修改注册表_第4页
第4页 / 共6页
VB修改注册表_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《VB修改注册表》由会员分享,可在线阅读,更多相关《VB修改注册表(6页珍藏版)》请在金锄头文库上搜索。

1、在过去,在进行Microsoft_Visual Basic 应用程序的开发时,感到在两次应用程序的运行之间保留状态信息是非常困难的。这是因为基于Microsoft Windows的应用程序(包括VisualBasic)需要将应用程序的状态信息写入到一个文本文件(*.INI文件)中,并且需要经常对这些文件中的文本进行分析,以包含有用的状态信息。现在,随着Windows 95以及Windows NT等32位操作系统的出现,应用程序可以通过使用一个叫做Windows注册库的存储场所来保留应用程序的状态信息,并且将它们自己注册在系统之中。通过位于ADVAPI32.DLL中的C语言应用程序编程接口(AP

2、Is),使得对注册库的提取和修改变得非常容易。这对于使用C和C+的程序员来说真是太好了,不过对于那些使用其它编程语言,例如Visual Basic版本4.0的程序员来说,使用这些编程接口还需要进行许多额外的工作。作为一个Visual Basic 4.0程序员,你首先 在一个*.BAS文件中 注册库 的 ,这些存储在ADVAPI32.DLL中的所需要的注册库APIs 容。你还需要 那些对 用这些APIs所需要的 和常 的 。这些对 , 以及常 的 包含在VBREG.BAS文件中,文件是VBREG,本文的 例 的一 分。要在 32位的Visual Basic 4.0工程中使用这些注册库APIs,

3、需要 将VBREG.BAS文件包含在工程中。注如你 在VBREG.BAS文件中 额外的APIs, 常 ,在对它们进行 的时需要外currency1(“是这些 的 )。要这些在你的Visual Basic 中fi 用的APIsfl 你所的工作, 这些 的 是非常要的。许多这 的例可以在WIN32API.TXT文件中到,文件作为Visual Basic 4.0系统的一 分 时fi,”是你可需要对这些 进行修改,以使它们常工作。你还可以在WINNT.H文件中到额外的一些有用的注册库常 ,在WINERROR.H文件中到额外的一些有用的 常 。一 你将一个文件,例如VBREG.BAS包括在你的工程中,你

4、可以在你的Visual Basic 中 用这些注册库APIs。要的是你所的 有且包含有的。外, STRINGfi时, 为 一个 间来容 它。这些APIs, 以及常 在VBREG 例应用程序中 有说 。Windows注册库通过 个 要注册 来 HKEY_CLASSES_ROOT,HKEY_CURRENT_ USER,HEKY_LOCAL_MACHINE,以及HKEY_USERS。在本文中 你对于这些 经非常 , 经如 使用 ,以及 经了 在注册库中所包含的的 。 可以用HighestSubkey NextLevelSubkeyLowerLevelSubkey(不包括 )的 来 。其中Highes

5、tSubkey是的 ,它 接位于 个 之 。注册 可以fi , , 开, 。如你可所到的,一个注册 在使用之 需要首先 它,在对一个注册 进行修改之 要首先 开它。在应用程序 行 间,你应 所有的fi使用的 ,并且你应 那些你 将来 对不使用的 。注册可以fi ,修改以及 。一个在它fi之 经fi 是修改(通过使用RegSetValueEx来 )。 注册 一 ,如你 它,你需要 它将来 对不fi使用。外,注册 和可以fi ,以助你 的那些输入是可以使用的。如你在编译 间不 对哪些 感兴趣, 功非常有用了。有一点很有趣的注事项是RegDeleteKeyAPI在没有 的情况 将 注册 。由于这个

6、因,VBREG不允许 一个带有 的 。不过你很容易的 以及 的功,你 需要 一个过程, 过程 你需要操作的 的所有 (以及这些 的),并且在 之 首先 所有的 。对于每个 应 在RegDeleteKey中检ERROR_ACCESS_DENIED标志,这 的有的归进程工作得很好。VBREG使用HKEY_LOCAL_MACHINE,在如 的VBREG Form_Load()过程中fi 置hKey = HKEY_LOCAL_MACHINE通过将 变 置为其它的 个 注册 之一,你很容易的使用它们。更进一步,你从用户是一个 的注册库位置获取这些信息。使用这些注册库APIs,一个比较好的方法是检 所的以

7、 的 用是否 功(如 用 功,它将ERROR_SUCCESS标志)。如不 功,你还可以检 ,基于 发生的 ,你可以 你的应用程序接 来 怎么做。还有一个比较好的方法是使用注册库APIs(例如在VBREG 例中的CreateRegKey )来为 置陷井,以 你的应用程序在 发生后的行为。VBREG 和修改的 是REG_SZ (Unicode 束)的。这里还有几种其它 的可以在注册库中使用,例如REG_BINARY,REG_LINK,以及REG_DWORD。例如,要写一个REG_DWORD 来替换REG_SZ ,则SetRegValue过程的RegSetValueEx 用应 fi改为lResult

8、 = RegSetValueEx(phkResult, sSetValue, 0, REG_DWORD, CInt(sValue), 4&)这里 sValue包含一个可以fi化为一个整 的。你可需要在 中进行更深入的修改以使用这些其它 的。在你使用一个注册库 之 , fi 。RegCreateKeyEx API提供了运行时刻的这个功。如 不存在,则RegCreateKeyEx 将 一个新的 ,而如 经存在,则将 将它 开。 面是在VBREG的CreateRegKey过程中对RegCreateKeyEx的 用。CreateRegKey = (RegCreateKeyEx(hKey, SubKey

9、 & NewSubKey, 0, , _REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, _SA, phkResult, Create) = ERROR_SUCCESS)如RegCreateKeyEx 了ERROR_SUCCESS标志,则你可以为REG_CREATED_NEW_KEYREG_OPENED_EXISTING_KEY检Create ,以 是否有一个新的 fi 。在上面的 用中,REG_OPTION_NON_VOLATILE 一个持久的 ,KEY_ALL_ACCESS则给予所有的用户对 的整的访问权利。其它的选项也 fi指 。这些选项在Visual C

10、+所带的Windows API考中有更深入的 释。一 你有需要的注册库 ,你可以使用RegOpenKeyRegKeyCreateEx来在将来需要的时 开它们。你可注到在VBREG中在看上去应 使用RegOpenKey的 方使用了RegKeyCreateEx。我发现如不使用RegKeyCreateEx来 开 ,则有一些操作将ERROR_ACCESS_DENIED标志。这可 额外的开支;如 不存在的话它将真 。如这不是你所需要的,你应 试着在 用RegCreateKeyEx之 首先 用RegOpenKey,然后看看它的 用是否 功。一 一个 fi 开,你可以使用RegSetValueEx来 置它的

11、,如需要的话,你也可以 它。如一个还不存在,而你又不 它,你应 在 用RegSetValueEx之 首先 用RegQueryValueEx,然后测试它的是不是ERROR_SUCCESS。 面是在VBREG的SetRegValue过程中对RegSetValueEx的 用lResult = RegSetValueEx(phkResult, sSetValue, 0, REG_SZ, sValue, _CLng(Len(sValue) + 1)在上面的 用中,REG_SZ是fi写入的的 。如在 面所提到过的,如你 ,你也可以写入其它 的。你还可以通过使用RegQueryValueEx来在注册库中一个

12、存在的。如 用 功,它将ERROR_SUCCESS标志。 面是VBREG的GetRetValue过程中的 段 Creat the buffer.szBuffer = Space(255)lBuffSize = Len(szBuffer) Open the key.RegOpenKeyEx(hKey, lpszSubKey, 0, 1, phkResult) Query the valuelResult = RegQueryValueEx( phkResult, szKey, 0, 0, szBuffer, lBuffSize)在这里需要注的为要的事情是要为缓冲 足的 间。使用C语言APIs一个

13、STRING作为一个输出(out) (例如RegQueryValueEx的第5个 ),你 显 为 一个 间。如这项操作失败,将导致产生一个不可料的 。这篇文章图告诉你在Visual Basic 4.0应用程序中如 使用Windows注册库APIs。如你希望看到更多的有 Windows注册库注册库APIs的信息,请考Visual C+所带的Windows API考,以及在Microsoft 开发库(Microsoft Development Library)中有 的文。远程编辑机器注册 为什么需要编辑远程机器上的注册 ?利性体现在出现以 问题时,你可以呆在你的椅上而不 到出问题的工作站上可以容易

14、 修复故障,者你在本 机器上根本不修复,如 列问题 使用机器的人使用视频 置,导致屏幕 黑 你企图将 的用户 置处拷贝到一系列机器上 用户连接了一个 的 器,因而 法到 的文件 编辑远程 机上的注册 非常 于编辑本 机 要的不 在于首先 远程注册 。现在我们 如 连接远程注册 (和一些你可 到的连接 )以及连接后你所 望看到的 。 远程 机 为了 你可以编辑一 机的注册 , 机器 一 机 有TCP/IP NetBEUI IPX/SPX等 中的一个几个,以及 Microsoft远程注册 的程序。为了在 机上 Microsoft远程注册 ,先将Windows 95 CD 入 器,fl以 步 进行1. 开 面 ,选 。 2. fl, 出现 选 件 对话时,选 ,然后 。 3. 在出现的 选 对话中, 从currency1 fl。在“出的口中, 入Microsoft远程注册 的程序所在的%CD-ROM%AdminNettoolsRemotreg (%CD-ROM%为你机器中的fi 的)。在fl 中你看 为RegServ.INF的文件。选它,然后 。4. 在 列 中选 Microsoft远程注册 ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号