每当程序运行到这句话  lRet = RegConnectRegistry("\\" & Text1.Text, HKEY_LOCAL_MACHINE, hKey) ,当我没权限打开它的注册表的时候程序就好像死了一样非常的慢,要过10秒才有反应,请大家告诉我怎么解决,小弟在这里先谢谢了!!

解决方案 »

  1.   

    但程序运行到这句话  lRet = RegConnectRegistry("\\" & Text1.Text, HKEY_LOCAL_MACHINE, hKey) 就不动了停在这句话上,好像也不起什么作用
      

  2.   

    这个应该是正常的吧
    毕竟你是远程访问
    若本地访问应该不会有这个问题
    另外你的hKey应该是对应Declare Function RegConnectRegistry Lib "advapi32.dll" Alias "RegConnectRegistryA" (ByVal lpMachineName As String, ByVal hKey As Long, phkResult As Long) As Long
    里面的最后一个参数吧
    HKEY_LOCAL_MACHINE其实就是这个函数里面的hkey的值
      

  3.   

    Declare Function RegConnectRegistry Lib "advapi32.dll" Alias "RegConnectRegistryA" (ByVal lpMachineName As String, ByVal hKey As Long, phkResult As Long) As Long
    '访问远程系统的部分注册表
    '返回值 Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
    '参数lpMachineName --  String,欲连接的系统。采用“\\计算机名”的形式
    '  hKey -----------  Long,HKEY_LOCAL_MACHINE 或 HKEY_USERS
    '  phkResult ------  Long,用于装载指定项句柄的一个变量
      

  4.   

    这恐怕有些麻烦.....VB6里面没有多线程,你只能在当前线程里调用这个函数那么一旦调用了它,当前线程(主线程)就在等待函数返回的状态中了,于是就挂起...不管你加什么代码,应该都是会挂起的....用C或ASM写个DLL,在DLL里面以另一线程调用这个函数吧.....
      

  5.   

    你把这个lRet = RegConnectRegistry("\\" & Text1.Text, HKEY_LOCAL_MACHINE, hKey) 放在activeXexe里,activexEXE选工程属性选“每个对象对应一个线程"