如何用代码修改注册表项

2022-07-15 13:13:23   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《如何用代码修改注册表项》,欢迎阅读!
何用,注册表,修改,代码
我们先来声明API函数,本例中用到的两个函数声明如下:

Private Declare Function RegCreateKey& Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey&, ByVal lpszSubKey$, lphKey&) As Long

Private Declare Function RegSetValue& Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey&, ByVal lpszSubKey$, ByVal fdwType&, ByVal lpszValue$, ByVal dwLength&) As Long

RegCreateKey函数的作用是在注册表中指定的主键下创建一个新的主键,而如指定的键已经存在,那么函数会打开现有的主键,其中各个参数的意义如下表所示:

参数 hKey

意义

Long,要打开键的句柄,或者一个标准键名。例如:HKEY_CLASSES_ROOT 是标准键名

lpSubKey String欲创建的新子键。如创建多个键,需用反斜杠将它们分隔开。例如:level1\newkey phkResult Long,指定一个变量,用于得到新子键的句柄,在设置键值时要用到它 返回值

Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码

RegSetValue函数用于设置指定键或子键的默认值,它的各个参数的意义如下:

参数 hKey lpSubKey dwType lpData cbData 返回值

意义

Long,一个已打开键的句柄,可从上面phkResult得到,或是指定一个标准键名 String要设置键值的一个子键的名字。如指定vbNullString表示设置hKey的默认值。如指定的子键不存在,则会创建它 Long,必须是REG_SZ String,新的键值

Long,指定lpData的长度,不包括空中止字符

Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码

下面我们看看怎样实现文件关联,步骤一:在在注册表的HKEY_CLASSES_ROOT下创建MyApp主键:

ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)

语句中sKeyName已经预先赋值为"MyApp",而函数执行完后lphKey&会返回新创建的主键的句柄,然后我们向句柄lphKey&所指的位置写入键值sKeyValue(已经赋值为"Logfiles")

ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)

如果这时查看注册表,会发现如下图所示的新主键和键值:




步骤二:在注册表的HKEY_CLASSES_ROOT下创建另外一个主键,键名为“.log”键值为“MyApp”,创建的方法与第一步相同,只不过键名和键值不同。建立此键值的作用是,把“.log”文件关联到“MyApp”主键所规定的内容,这时的注册表如下:



第三步:我们为“MyApp”设置了一个命令行,也就是在主键MyApp下建立如下主键:



实现的代码是:

sKeyName = "MyApp" '*名为MyApp的键名

sKeyValue = "notepad.exe %1" '*把键值设为"notepad.exe %1"%1指的是要打开的文件 '如果该键已经创建,则RegCreateKey那么函数会打开现有的项 ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)

'下面一句的实际效果是在MyApp键下建立shell\open\command目录,并写入键值sKeyValue '说明:放在一个键的shell\open\command下的是打开某一类型文件的应用程序的名称 ret& = RegSetValue&(lphKey&, "shell\open\command", REG_SZ, sKeyValue, MAX_PATH)


经过以上几个步骤,我们已经建立了“.log”文件和记事本程序的关联。总结前面的内容可以发现在VB中采用API对注册表操作的基本思路都是类似的,只要我们知道了两个API函数的用法,然后熟悉注册表操作,就能灵活的写出与注册表相关的程序来。




本文来源:https://www.wddqxz.cn/89783c74f46527d3240ce093.html

相关推荐