应用程序在启动和运行时需要将一些重要的信息保存起来,以便在下次启动和运行时使用。在Windows16位操作系统中,使用系统初始化文件(INI)来存取重要参数。在微软WIN95及最新的WIN98系统中,却是采用注册表来存放应用程序的启动及运行所需的重要参数。
注册表的存取方法一般有以下两种:
一、使用WIN95提供的注册表编辑器。使用方法为:点“开始”,选“运行”,打开“regedit”,回车即可进入注册表编辑器。使用它提供的新建、删除及修改等功能来完成对注册表的存取操作。但一定要注意预先备份注册表。
二、编程实现。可以采用WIN95 API中有关注册表编辑的几个函数来读写注册表,但是技巧性很强,万一操作不当,则可能破坏注册表,造成系统下次启动或某些程序运行故障。
下面我利用VB5.0提供的两个语句和两个函数来读写注册表,它们的使用方法十分简单,而且很实用。
1、SaveSetting语句
语法:SaveSetting appname,section,key,setting
2、GetAllSettings函数
语法:GetAllSettings (appname,section)
3、GetSetting函数
语法:GetSetting(appname,scetion,key[,default])
4、DeleteSetting语句
语法:DeleteSetting appname,section,[key]
参数含义:
appname:字符串表达式,应用程序名
section:字符串表达式,小节名
key: 字符串表达式,关键字名
setting:表达式,关键字设定值
下面通过实例来说明它们的用法:应用程序名为jld_app,小节名为startup,关键字为left。
在注册表中建立应用程序的注册项:
SaveSetting “jld_app”,“startup”,“left”,100
从应用程序注册表项中读取所有关键字及其对应的值:
Dim mysettings(10,10)As Variant
Dim settingindex As Integer
GetAllSettings “jld_app”,“startup”
For settingindex=Lbound(mysettings,1)To Ubound(mysettins,1)
Debug.Print mysettings(settingindex,0);“=”;mysettings(settingindex,1)
Next settingindex
End Sub
从应用程序注册表项中读取关键字“left”的设置:
Debug.Print GetSetting(“jld_app”,“startup” ,“left”,“not ok”)
从WIN95注册表中删除小节“startup”
DeleteSetting“jld_app”,“startup”
注册表的存取方法一般有以下两种:
一、使用WIN95提供的注册表编辑器。使用方法为:点“开始”,选“运行”,打开“regedit”,回车即可进入注册表编辑器。使用它提供的新建、删除及修改等功能来完成对注册表的存取操作。但一定要注意预先备份注册表。
二、编程实现。可以采用WIN95 API中有关注册表编辑的几个函数来读写注册表,但是技巧性很强,万一操作不当,则可能破坏注册表,造成系统下次启动或某些程序运行故障。
下面我利用VB5.0提供的两个语句和两个函数来读写注册表,它们的使用方法十分简单,而且很实用。
1、SaveSetting语句
语法:SaveSetting appname,section,key,setting
2、GetAllSettings函数
语法:GetAllSettings (appname,section)
3、GetSetting函数
语法:GetSetting(appname,scetion,key[,default])
4、DeleteSetting语句
语法:DeleteSetting appname,section,[key]
参数含义:
appname:字符串表达式,应用程序名
section:字符串表达式,小节名
key: 字符串表达式,关键字名
setting:表达式,关键字设定值
下面通过实例来说明它们的用法:应用程序名为jld_app,小节名为startup,关键字为left。
在注册表中建立应用程序的注册项:
SaveSetting “jld_app”,“startup”,“left”,100
从应用程序注册表项中读取所有关键字及其对应的值:
Dim mysettings(10,10)As Variant
Dim settingindex As Integer
GetAllSettings “jld_app”,“startup”
For settingindex=Lbound(mysettings,1)To Ubound(mysettins,1)
Debug.Print mysettings(settingindex,0);“=”;mysettings(settingindex,1)
Next settingindex
End Sub
从应用程序注册表项中读取关键字“left”的设置:
Debug.Print GetSetting(“jld_app”,“startup” ,“left”,“not ok”)
从WIN95注册表中删除小节“startup”
DeleteSetting“jld_app”,“startup”
解决方案 »
- 求助:我用Winsock控件来下载一个网页,但接收到的文件总是不超过60多K,但实际上要下载的HTML页面有80多K,不知道什么原因?
- 求助!急!请帮助!!!!!!!!!!
- 请教,如何用API给SysTabControl32类加入项目?
- 我是外行,问两个小问题,望各位兄弟帮下忙
- 小弟做个小东东,Deletl键和pageup等键没有响应???其它正常。
- 我犯得一个大错误,你不要再犯呀。
- VB中图形问题
- VB高手进,急啊急啊,请多帮忙,谢谢你们了
- 我使用一个ComboBox,我想用Change事件来实现当用户选择下拉框中的不同的行时激发一个事件,但却发现它并不是如此工作.请问如何实现当用户选择不同行进激发一个事件?谢谢!
- 有那位骨灰级高手知道用API解压缩
- 这个API有何特别用途
- 我用VB6自带的打包程序做安装程序时,不能把自己想要的文件放在适当的地方...
这个问题我基本上快解决了,我想在此请问各位如何从注册表中获取系统中安装的某软件的安装路径呀??谢谢!!
回复人: fishzone(阿愚) (2002-1-24 14:08:27) 得0分
to: lhh(西方失败)
我想在此请问各位如何从注册表中获取系统中安装的某软件的安装路径呀??谢谢!! 在这里有所有的安装路径
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
各位帮帮我呀!!
HKEY_CURRENT_USER\SOFTWARE 下的项一般是由安装程序或者应用程序生成的,那里有一些程序里有用或者没用的信息。比如我通常会放一些应用程序状态,像打开过的文件,最后一次登陆用户名,窗口状态和位置,等等。而在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 下生成的键值我估计也是由打包工具生成的。别的我不知道,反正我用微软的vb打包工具做的安装文件就会创建 应用程序名.exe 的项。这个项里有一个字符串就是程序路径。如果这里找不到他的话,很遗憾,我也帮不了你了。或者你可以查一查installshield会把自己打包安装的程序放在注册表的什么位置?
谢谢你,我找到了,是用搜索的方法,原来它还是在App paths下的,但名字不太一样。现在给分了,各位接着!