找回密码
 加入
搜索
查看: 4391|回复: 11

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

  [复制链接]
发表于 2010-7-1 10:11:03 | 显示全部楼层 |阅读模式
本帖最后由 仙乃日 于 2010-7-11 20:38 编辑

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

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

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-7-1 13:51:25 | 显示全部楼层
可以自己 写个 函数, 先读取 在写入啊
发表于 2010-7-1 19:04:56 | 显示全部楼层
可以自己 写个 函数, 先读取 在写入啊
kylinpoet 发表于 2010-7-1 13:51

没这么麻烦吧........................
$a="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
runwait(@comspec & " /c regedit /e"&" "&"d:\11.reg"&" "& $a,"",@sw_hide) 
为了方便测试,故用$a 来导出RUN 部分!!!!
发表于 2010-7-1 19:15:28 | 显示全部楼层
上面仅实现了本机吧?楼主的意思是含“远程”另外一台电脑。
发表于 2010-7-1 19:34:09 | 显示全部楼层
自己写个调用dos命令的函数,方便调用
发表于 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

评分

参与人数 1金钱 +10 收起 理由
仙乃日 + 10 感谢帮忙

查看全部评分

发表于 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) 
发表于 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\...') ;远程到本机
发表于 2010-7-1 20:44:42 | 显示全部楼层
本帖最后由 lchl0588 于 2010-7-1 20:52 编辑

回复 8# 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[0], $AVARRAY[1])
        Local $AVCURR[2][2] = [[$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[2], "str", $SFILE)
        _SETPRIVILEGE($AVPREV)
        REGCLOSEKEY($HKEY)
        Return SetError($AVRLH[0], 0, Number($AVRLH[0] = 0))
EndFunc   ;==>_REGLOADHIVE

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2017-1-28 13:04:46 | 显示全部楼层
学习,顶起来
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-24 12:14 , Processed in 0.089675 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表