应用程序在启动和运行时需要将一些重要的信息保存起来,以便在下次启动和运行时使用。在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”

解决方案 »

  1.   

    回复人: lhh(西方失败) (2002-1-24 14:04:15)  得0分 
    这个问题我基本上快解决了,我想在此请问各位如何从注册表中获取系统中安装的某软件的安装路径呀??谢谢!!  
    回复人: fishzone(阿愚) (2002-1-24 14:08:27)  得0分 
    to: lhh(西方失败) 
    我想在此请问各位如何从注册表中获取系统中安装的某软件的安装路径呀??谢谢!! 在这里有所有的安装路径
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths  
      

  2.   

    一般的软件的安装都在HKEY_CURRENT_USER\SOFTWARE的目录下
      

  3.   

    太感谢ferrytang(楼上的你悠着点!!!)给的建议了,不过您能不能直接点直接告诉我怎么获得安装路径,有时软件的注册有关安装路径是由该软件来决定的吗?所以我还得先知道该软件在电脑上注册时是注册成什么洋,我才可以有目的地区取该键值吗?是这样的吗?有什么快的方法呀?
      

  4.   

    感谢fishzone(阿愚),您的路径比较快 呀?我试试!1
      

  5.   

    我现在要找的是别人用Delphi开发的InstallShield打包的软件,我在HKEY_CURRENT_USER\SOFTWARE下他的公司下看到了他的软件名和版本但没有安装路径,运行了他的应用程序了,但在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 下找不到给应用程序,更不要说他的路径了!!
    各位帮帮我呀!!
      

  6.   

    lhh(西方失败) ,你好:
    HKEY_CURRENT_USER\SOFTWARE 下的项一般是由安装程序或者应用程序生成的,那里有一些程序里有用或者没用的信息。比如我通常会放一些应用程序状态,像打开过的文件,最后一次登陆用户名,窗口状态和位置,等等。而在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 下生成的键值我估计也是由打包工具生成的。别的我不知道,反正我用微软的vb打包工具做的安装文件就会创建 应用程序名.exe 的项。这个项里有一个字符串就是程序路径。如果这里找不到他的话,很遗憾,我也帮不了你了。或者你可以查一查installshield会把自己打包安装的程序放在注册表的什么位置?
      

  7.   

    to fishzone(阿愚):
       谢谢你,我找到了,是用搜索的方法,原来它还是在App paths下的,但名字不太一样。现在给分了,各位接着!