仙乃日 发表于 2010-7-1 10:11:03

如何用AU3如何实现类似reg copy命令的操作[已解决]

本帖最后由 仙乃日 于 2010-7-11 20:38 编辑

如何用AU3如何实现类似reg copy命令的操作?

命令:reg copy
  将当前的注册表或远程计算机上的注册表拷贝到一个新的位置(或计算机上)。   reg copy [\\machine\]sourcekey [\\machine\]destinationkey   
    甲例子:reg copy hklm\software\myco\myapp hklm\software\myco\savemyapp

kylinpoet 发表于 2010-7-1 13:51:25

可以自己 写个 函数, 先读取 在写入啊

lchl0588 发表于 2010-7-1 19:04:56

可以自己 写个 函数, 先读取 在写入啊
kylinpoet 发表于 2010-7-1 13:51 http://www.autoitx.com/images/common/back.gif
没这么麻烦吧........................$a="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
runwait(@comspec & " /c regedit /e"&" "&"d:\11.reg"&" "& $a,"",@sw_hide) 为了方便测试,故用$a 来导出RUN 部分!!!!

ferelove 发表于 2010-7-1 19:15:28

上面仅实现了本机吧?楼主的意思是含“远程”另外一台电脑。

afan 发表于 2010-7-1 19:34:09

自己写个调用dos命令的函数,方便调用

afan 发表于 2010-7-1 19:55:39

Func _RegCopy($SourceKey, $DestinationKey, $flag = '/s /f')
        ;$SourceKey:源键|$DestinationKey:目标键|这两个参数前面可选包含远程计算机名(\\计算机名\HKLM\...)
        Local $run = RunWait('REG COPY "' & $SourceKey & '" "' & $DestinationKey & '" ' & $flag, '', 0)
        If Not $run Then Return 1 ;成功
        Return 0 ;失败
EndFunc   ;==>_regexplort

lchl0588 发表于 2010-7-1 20:34:50

回复 6# afan
楼上的代码运行不成功:_regcopy("\\Pc-655f20300968\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","d:\1.reg")
Func _RegCopy($SourceKey, $DestinationKey, $flag = '/s /f')
      ;$SourceKey:源键|$DestinationKey:目标键|这两个参数前面可选包含远程计算机名(\\计算机名\HKLM\...)
      Local $run = RunWait('REG COPY "' & $SourceKey & '" "' & $DestinationKey & '" ' & $flag, '', 0)
      If Not $run Then Return 1 ;成功
      Return 0 ;失败
EndFunc   ;==>_regexplort下面是偶的代码, 首先远程机能正常访问本机,同时建一个可读写的共享文件夹!!最后在远程机运行如下代码:
注:这是偶测试的代码--------------成功!!!$a="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
runwait(@comspec & " /c regedit /e"&" "&"\\计算机名\临时文件\11.reg"&" "& $a,"",@sw_hide)

afan 发表于 2010-7-1 20:37:52

本帖最后由 afan 于 2010-7-1 20:42 编辑

回复 7# lchl0588


    晕~ 你自己运用错了~ 这是 reg copy ,不是你的 regedit /e 导出,两个命令,两个概念,两种结果
正确的格式是:
_RegCopy('\\计算机名\HKLM\...', '\\计算机名\HKLM\...') ;远程到远程
或者
_RegCopy('HKLM\...', '\\计算机名\HKLM\...') ;本机到远程
或者
_RegCopy('HKLM\...', 'HKLM\...') ;本机到本机
或者
_RegCopy('\\计算机名\HKLM\...', 'HKLM\...') ;远程到本机

lchl0588 发表于 2010-7-1 20:44:42

本帖最后由 lchl0588 于 2010-7-1 20:52 编辑

回复 8# afan

afan 发表于 2010-7-1 21:25:18

回复 9# lchl0588


    这个应该属于远程连接或权限的问题了
你直接用 dos 的 reg copy 试试,结果肯定是一样的

仙乃日 发表于 2010-7-11 20:47:43

是想使用纯AU3来实现reg.exe的功能。如:reg load
Func _REGLOADHIVE($SFILE, $SKEY)
        Local $AVARRAY = SPLIT_SROOTKEY($SKEY)
        Local $HKEY = REGCONNECTREGISTRY($AVARRAY, $AVARRAY)
        Local $AVCURR = [[$SE_RESTORE_NAME, $SE_PRIVILEGE_ENABLED],[$SE_BACKUP_NAME, $SE_PRIVILEGE_ENABLED]]
        Local $AVPREV = _SETPRIVILEGE($AVCURR)
        Local $AVRLH = DllCall("Advapi32.dll", "long", "RegLoadKey", "hwnd", $HKEY, "str", $AVARRAY, "str", $SFILE)
        _SETPRIVILEGE($AVPREV)
        REGCLOSEKEY($HKEY)
        Return SetError($AVRLH, 0, Number($AVRLH = 0))
EndFunc   ;==>_REGLOADHIVE

dhlhmgc 发表于 2017-1-28 13:04:46

学习,顶起来
页: [1]
查看完整版本: 如何用AU3如何实现类似reg copy命令的操作[已解决]