欢迎来到山村网

VB中如何实现注册表的读写

2019-03-02 14:44:20浏览:317 来源:山村网   
核心摘要:  ----毫不夸张的说,注册表相当于WIN95的心,几乎所有的Windows应用程序都毫不例外的要在这里边安家筑巢,如果你也用VB编写了

  ----毫不夸张的说,注册表相当于WIN95的“心”,几乎所有的Windows应用程序都毫不例外的要在这里边“安家筑巢”,如果你也用VB编写了一个程序,是不是也想在注册表里占有一席之地呢(即使刚才没有,现在大概也有了吧)?嗯,听我慢慢道来。

  ----“API”中专门提供了处理注册表的函数,不用说也知道,它们肯定功能强大(因为它们是API),但是它们的难度也是不小的。如果你是一个入门者的话,这大概会令你头痛一阵子。不过VB本身还提供了几个函数,专门用来处理注册表,相对来说它们就简单多了,所以我只对它们做一下说明:

  SaveSettingappname,section,key,value

  ----这句话的作用是将应用程序的信息存入注册表中。其中四个参数都是必要的,其含义分别为:应用程序名,区段,键,值。比如我们要为我们的程序(名为“测试”)的主窗体的位置进行存储,就可以写成:

  SaveSetting“测试”,”main”,”

  top”,frmMain.Top

  SaveSetting“测试”,”main”,”

  Left”,frmMain.Left

  SaveSetting“测试”,”main”,”

  Width”,frmMain.Width

  SaveSetting“测试”,”main”,”

  Height”,frmMain.Height

  ----这样,就把当前的主窗体的位置进行了记录,在下次打开这个窗体的时候,我们就可以在把这些值取出来。那么如何才能把我们所存储的值取出来呢?这就要用到另一个函数:GetSetting,它的语法是:

  GetSetting(appname,section,key[,default])

  ----该函数的各部分的意义均和上面的函数的意义相同,所不同的是多了一个default而少了一个value。这个函数最后返回的结果即value值,而default指的是如果所指定的键不存在时,则以default指定的值为返回结果。如果没指定default,则default的默认值是””,即0长度的字符串。接上例,在程序刚开始的时候,我们应该取出上一次所存储的主窗体的位置,可以写成:

  frmMain.Top=GetSetting

  (“测试”,”main”,”top”)

  frmMain.Left=GetSetting

  (“测试”,”main”,”Left”)

  frmMain.Height=GetSetting

  (“测试”,”main”,”Height”)

  frmMain.Width=GetSetting

  (“测试”,”main”,”Width”)

  ----好了,到此为止,可以暂且告一段落,让我们打开注册表,看一看我们把信息是记录在什么地方了。按照下面的路径打开:HKEY_CURRENT_USERSoftwareVBAndVBAProgramSettings你会看到你的“测试”就在里边放着。

  ----当你的应用程序最终被卸载时,你应该考虑(而且你应该这样做)把你写入注册表中的内容清除掉,因为离开了你的应用程序,它们无疑就是一推垃圾而已。要想将它们删掉,我们可以用函数:DeleteSetting,它的语法如下:DeleteSettingappname,[section[,key]]在几个参数中,只有appname是必须地,其它两项均可选。比如我们要删除窗体的“高”这键,则可以写成:DeleteSetting“测试”,”main”,”Height”如果我们要将”main”这个段整个去掉,则可以写成DeleteSetting“测试”,”main”如果我们再彻底一些,想将整个应用程序去掉的话,就干脆直接写成:

  DeleteSetting“测试”

  ----这种方法的不足之处是只能把信息记录在指定的位置,即

  HKEY_CURRENT_USERSoftwareVB

  AndVBAProgramSettings

  ----如果要写入到别的地方,就要借助于API了。

(责任编辑:豆豆)
下一篇:

VB常用术语释义

上一篇:

VB多类图片数据库存取技巧

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com