CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  API

怎样读去注册表中的字符值呀??我怎么读不出呀。

楼主ywchen2000(灌水大帝:努力奋斗)2003-02-04 17:58:48 在 VB / API 提问

如体 问题点数:40、回复次数:9Top

1 楼lilimaoming(嗷嗷)回复于 2003-02-05 15:44:07 得分 10

声明:  
  Public   Const   ERROR_SUCCESS   =   0&  
  Public   Const   HKEY_LOCAL_MACHINE   =   &H80000002  
  Public   Const   REG_SZ   =   1                   '   Unicode   nul   terminated   string  
  Public   Const   READ_CONTROL   =   &H20000  
  Public   Const   STANDARD_RIGHTS_READ   =   (READ_CONTROL)  
  Public   Const   KEY_QUERY_VALUE   =   &H1  
  Public   Const   KEY_ENUMERATE_SUB_KEYS   =   &H8  
  Public   Const   KEY_NOTIFY   =   &H10  
  Public   Const   SYNCHRONIZE   =   &H100000  
  Public   Const   KEY_READ   =   ((STANDARD_RIGHTS_READ   Or   KEY_QUERY_VALUE   Or   KEY_ENUMERATE_SUB_KEYS   Or   KEY_NOTIFY)   And   (Not   SYNCHRONIZE))  
  Public   Declare   Function   RegOpenKeyEx   Lib   "advapi32.dll"   Alias   "RegOpenKeyExA"   (ByVal   hKey   As   Long,   ByVal   lpSubKey   As   String,   ByVal   ulOptions   As   Long,   ByVal   samDesired   As   Long,   phkResult   As   Long)   As   Long  
  Public   Declare   Function   RegQueryValueEx   Lib   "advapi32.dll"   Alias   "RegQueryValueExA"   (ByVal   hKey   As   Long,   ByVal   lpValueName   As   String,   ByVal   lpReserved   As   Long,   lpType   As   Long,   lpData   As   Any,   lpcbData   As   Long)   As   Long                   '   Note   that   if   you   declare   the   lpData   parameter   as   String,   you   must   pass   it   By   Value.  
  Public   Declare   Function   RegQueryValueExString   Lib   "advapi32.dll"   Alias   "RegQueryValueExA"   (ByVal   hKey   As   Long,   ByVal   lpValueName   As   String,   ByVal   lpReserved   As   Long,   lpType   As   Long,   ByVal   lpData   As   String,   lpcbData   As   Long)   As   Long  
  Public   Declare   Function   RegCloseKey   Lib   "advapi32.dll"   (ByVal   hKey   As   Long)   As   Long  
  程序:  
          reg_value   =   Space(20)  
          result   =   RegOpenKeyEx(HKEY_LOCAL_MACHINE,   "software\MYSOFTWARE\MYPRO",   0,   KEY_READ,   reg_phkey)  
          If   result   =   ERROR_SUCCESS   Then  
                  result   =   RegQueryValueExString(reg_phkey,   "MYTEXT",   0&,   REG_SZ,   reg_value,   Len(reg_value))  
                  RegCloseKey   (reg_phkey)  
          End   If  
  Top

2 楼zyl910(编程的乐趣在于编程控制硬件,与用图形学实现绚丽效果)回复于 2003-02-06 16:22:10 得分 0

VB操作注册表:  
  http://www.sqreg.com/file/vb/reg_01.htm  
  http://www.sqreg.com/file/vb/reg_02.htm  
  http://www.sqreg.com/file/vb/reg_03.htm  
  http://www.sqreg.com/file/vb/reg_04.htm  
  http://www.sqreg.com/file/vb/reg_05.htm  
  http://www.sqreg.com/file/vb/reg_06.htm  
  http://www.sqreg.com/file/vb/reg_07.htm  
  Top

3 楼qiuzhongshu(不长毛的猪)回复于 2003-02-06 23:13:55 得分 0

我以前用了一个模块,没问题  
  要的话留下emailTop

4 楼suntt(两条腿的狗)回复于 2003-02-10 08:15:56 得分 10

Public   Declare   Function   RegCloseKey   Lib   "advapi32.dll"   (ByVal   hkey   As   Long)   As   Long  
  Public   Declare   Function   RegOpenKeyEx   Lib   "advapi32.dll"   Alias   "RegOpenKeyExA"   (ByVal   hkey   As   Long,   ByVal   lpSubKey   As   String,   ByVal   ulOptions   As   Long,   ByVal   samDesired   As   Long,   phkResult   As   Long)   As   Long  
  Public   Declare   Function   RegQueryValueEx   Lib   "advapi32.dll"   Alias   "RegQueryValueExA"   (ByVal   hkey   As   Long,   ByVal   lpValueName   As   String,   ByVal   lpReserved   As   Long,   lpType   As   Long,   ByVal   lpData   As   Any,   lpcbData   As   Long)   As   Long                   '   Note   that   if   you   declare   the   lpData   parameter   as   String,   you   must   pass   it   By   Value.  
   
  注意RegQueryValueEx   中的lpData参数前一定要加byval  
   
  Public   Function   ReadValue(mainkey   As   Long,   keyname   As   String,   value   As   String)   As   String  
  Dim   phkResult   As   Long  
  Dim   re   As   Long  
  Dim   buffer   As   String  
  Dim   size   As   Long  
  On   Error   GoTo   err  
  If   RegOpenKeyEx(mainkey,   keyname,   0,   KEY_ALL_ACCESS,   phkResult)   <>   ERROR_SUCCESS   Then  
            Call   RegCloseKey(phkResult)  
  End   If  
  re   =   RegQueryValueEx(phkResult,   value,   0,   REG_SZ,   0&,   size)  
  If   re   <>   ERROR_SUCCESS   Then  
          Call   RegCloseKey(phkResult)  
  End   If  
  buffer   =   String$(size   -   1,   0)  
   
  re   =   RegQueryValueEx(phkResult,   value,   0,   REG_SZ,   buffer,   size)  
  If   re   <>   ERROR_SUCCESS   Then  
          Call   RegCloseKey(phkResult)  
  End   If  
  ReadValue   =   buffer   '返回函数值  
  err:  
  Call   RegCloseKey(phkResult)  
  End   FunctionTop

5 楼missbo()回复于 2003-02-10 21:38:31 得分 10

楼上的你们,做得都比不上MS,我建议:  
  请将你计算机中下列文件加到你的工程中,你的程序问题就解决了!  
   
  :\Program   Files\Microsoft   Visual   Studio\VB98\Template\Code\Registry   Access.basTop

6 楼mjcom(不明飞行物)回复于 2003-02-11 12:30:53 得分 0

upTop

7 楼hereticclub(雪狐)回复于 2003-02-11 13:43:38 得分 0

我自己写了一个类,专门读Ini和注册表的,一直在用,想要的话找我,我的QQ:988112  
   
  前提是你要先给我200分!Top

8 楼smartluwei(斯马特卤味)回复于 2003-02-11 13:49:49 得分 0

upTop

9 楼sakurako(看晨雾散开,你就是我一生的最爱...)回复于 2003-02-11 20:35:20 得分 10

GetStringValue("HKEY_CURRENT_USER\Keyboard   Layout\Preload\5",   "A   string")Top

相关问题

  • 注册表读写的问题---关于注册表中的数字字符
  • 注册表中读取一个字符串值,Name为(默认)时,如何取得其值
  • 好奇怪的问题读取的注册表键值,不能在其后进行&的字符运算,急
  • 好奇怪的问题读取的注册表键值,不能在其后进行&的字符运算,急
  • 调用注册表读取函数 RegQueryValueEx之后,返回值怎么会有不可见字符?
  • 如何将注册表里的键值写为字符串
  • 读注册表
  • 关于读取注册表值!
  • 如何读取注册表键值?
  • 注册表中读出的值

关键词

  • phkresult
  • regclosekey
  • regqueryvalueex
  • byval
  • sz
  • key
  • hkey
  • reg
  • long
  • read

得分解答快速导航

  • 帖主:ywchen2000
  • lilimaoming
  • suntt
  • missbo
  • sakurako

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo