各位,用 Registry.GetKeyValue(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion", "CurrentVersion", sss),sss正确可以得到该键的值。
但是我根据自己的注册表,找了一个键的路径写进去,这函数就得不到了,每次返回都是FALSE,
请问这个函数是怎么用的?为什么我给它其他的路径就不能得到值了?

解决方案 »

  1.   

    你写的位置与你传的参数匹配吗?很显然:
     Registry.GetKeyValue(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion", "CurrentVersion", sss)上面第一个参数是注册表的主分支,第二个参数是在树上的位置,第三个参数是KEY名如果你写在 HKEY_LOCAL_MACHINE\MyReg 中,KEY名是 myKey,那应该调用: Registry.GetKeyValue(HKEY_LOCAL_MACHINE, "MyReg", "myKey", sss)还要注意类型,你不能写一个二进制,然后当文本去读
      

  2.   

    嗯,我也是这样写的,比如我要获得另外一个键值,HKEY_LOCAL_MACHINE下的SOFTWARE\Microsoft\MSSQLServer\80\TOOLS\ClientSetup\CurrentVersion 的CurrentVersion这个项的键值,我这样写Registry.GetKeyValue(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\MSSQLServer\80\TOOLS\ClientSetup\CurrentVersion", "CurrentVersion", sv)
    sv 是string类型的。但是不行啊
    还有什么地方有错,请各位大侠不吝赐教。
      

  3.   

    不是说你参数的类型,而是说注册表键的类型。注册表键值有:字符串,二进制,dword等等
    不过你取的应该也是字符键值,应该不是错在这里。但是 Registry 这个类并不是标准的vb对象,肯定是你自己添加的 .cls 文件中的。
    因此只能看类代码了!跟踪一下进入类中看看问题所在。
      

  4.   

    没错!我引用Registry Access functions后用的这个函数,不过我这里刚才看了没有.cls文件哦,怎样跟踪进类中看?
    刚才那个的键值是8.00.194,用STRING应该可以显示的
    应该还有其他问题吧,比如引用或声明之类的吧
      

  5.   

    to:fxy_2002(阿勇) 请问怎样跟踪进类里看?
    还有我想应该不是这样的问题吧,引用或声明要什么特别处理吗?
    有没有人知道的?
      

  6.   

    如果你是引用了某个东东而没有 .cls 文件,那大概是没有源代码的,只是用了一个第三方组件。
    这个组件若别人没用过,是说不清楚问题所在的。很遗憾,我没用过这个所谓的 Registry Access functions。建议一下:网上关于注册表操作的源代码很多,既然有源码应该用源码而非编译后的组件。所以你还是找一个源码替换这个组件就成了。源码很多,搜一下就好。
      

  7.   

    好的,真奇怪,第一个就能正确获得,改成其他就不行了。算了,我还是去找源码去获取吧。
    Registry Access functions应该是WINDOW带的吧,因为我没装其他会出现这个的东西。
    还是谢谢你。马上放分给你:)