您的位置:程序门 -> vb ->



regopenkey返回值不是0,为什么急急急


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


regopenkey返回值不是0,为什么急急急
发表于:2007-08-18 22:31:00 楼主
这是我的代码:
public   declare   function   regopenkey   lib   "advapi32.dll "   alias   "regopenkeya "   (byval   hkey   as   long,   byval   lpsubkey   as   string,   phkresult   as   long)   as   long

public   declare   function   regcreatekey   lib   "advapi32.dll "   _
                                        alias   "regcreatekeya "   (byval   hkey   as   long,   _
                                                                                      byval   lpsubkey   as   string,   _
                                                                                      phkresult   as   long)   as   long

  public   const   hkey_local_machine   =   &h80000002
   
public   sub   result()
  dim   result   as   long
  dim   hkeyid   as   long
  result   =   regopenkey(hkey_local_machine,   _
      "software/microsoft/windows/currentversion/run ",   hkeyid)

end   sub

在返回值result   =2,为什么啊?

我把写成:result   =   regcreatekey(hkey_local_machine,   _
      "software/microsoft/windows/currentversion/run ",   hkeyid)

返回值result   =87,为什么我得不到正确的值0,哪位大哥给我回答一下,感激不尽


发表于:2007-08-19 00:20:041楼 得分:0
可能是访问权限出了问题,regopenkey只是为了兼容win3.x而保留的旧函数,32位系统下应该使用regopenkeyex。
regopenkey我是没用过,感觉在nt内核的系统下,它只有访问hkey_current_user下键值的权限。
发表于:2007-08-19 01:36:202楼 得分:0
谢谢楼上兄弟
现在更改成:

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   regcreatekey   lib   "advapi32.dll "   _
                                        alias   "regcreatekeya "   (byval   hkey   as   long,   _
                                                                                      byval   lpsubkey   as   string,   _
                                                                                      phkresult   as   long)   as   long

  public   const   hkey_local_machine   =   &h80000002
    public   const   key_set_value   =   &h2

public   sub   result()
  dim   result   as   long
  dim   hkeyid   as   long
  result   =   regopenkey(hkey_local_machine,   _
      "software/microsoft/windows/currentversion/run ",0,key_set_value   ,   hkeyid)

end   sub
在返回值result   =2,结果一样的,得不到0
发表于:2007-08-19 13:42:033楼 得分:0
"software/microsoft/windows/currentversion/run "

"software\microsoft\windows\currentversion\run "
一样吗?
发表于:2007-08-19 13:44:224楼 得分:0
注册表路径不用 "/ "
发表于:2007-08-19 22:39:575楼 得分:0
呵呵,真没注意,lz用的是“/”,狂晕不止!
发表于:2007-08-29 21:51:206楼 得分:0
要不要帮叫120..........


快速检索

最新资讯
热门点击