nivisde 发表于 2011-11-25 02:51:17

RADMIN远程主机信息导入导出工具——附源码

本帖最后由 nivisde 于 2011-11-25 03:09 编辑

本例采用了2个比较好一点的方法,其他朋友可以看看。也有个缺陷,为了布局美观,减少了一个FileOpenDialog。
1.注册表键值的遍历。
2.INI文件的遍历。


最终效果如下
                                    
更新信息:
2011-11-20
应同事要求,写一个RADMIN信息导入导出工具,以方便工作。

2011-11-21
正式起手,完成版本 1.0.0.0

2011-11-24
据同事反应,读取RADMIN远程主机信息不完整,体现于读取的机器数目不准确。观察后发现,
在公司控制端电脑RADMIN信息保存的注册表中机器序列不是有序的,且由于增删操作等,序列有500多。

2011-25
修正远程主机注册表信息读取过程,使用枚举方法遍历RADMIN远程主机配置信息。
同时改进读取配置文件信息方法。
发布 2.0.0.0 版本。
            
版权所有,请勿直接复制粘贴修改,手动录入可授予修改版权及其他信息权限。录入AUTOIT编辑器可见层次分明的代码。#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_icon=D:\10556.ico
#AutoIt3Wrapper_outfile=RadminInfoInputOut.exe
#AutoIt3Wrapper_Res_Comment=Remote Administrator viewer Info Input/Output 网顺科技内部自由拷贝。
#AutoIt3Wrapper_Res_Description=QQ:307256915 Copyright
#AutoIt3Wrapper_Res_Fileversion=2.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=powerBy AmibeCode System
#AutoIt3Wrapper_Run_Obfuscator=y
#Obfuscator_Parameters=/striponly
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_UseAnsi=n

#include <GUIConstants.au3>       
#include<IE.au3>

Global $IniFilePath

        Local $yt=1
        Local $y=0
        While 1
                Local $KeyName = RegEnumVal("HKEY_CURRENT_USER\Software\RAdmin\v2.0\Clients", $yt)
                If @error = -1 Then
                        ExitLoop
                Else
                        $RadminClientRead=RegRead("HKEY_CURRENT_USER\Software\RAdmin\v2.0\Clients",$KeyName)
                        If $RadminClientRead="" Then
                                ExitLoop
                        Else
                                $y+=1
                        EndIf
                EndIf
             $yt+=1
         WEnd;==>读取远程主机数目
;------------------------------------------------------------------------------------------------------------------               
Opt("TrayIconHide", 1)
Opt("MouseCoordMode", 1)
Opt("GUICloseOnESC", 0)

GUICreate("RAdmin Input|output InfoList   By:307256915",350,70)
GUICtrlCreateLabel("共有远程主机数量:",10,14,130,20)
$GUIOutPutCout=GUICtrlCreateInput($y,118,10,50,20)
GUICtrlSetState($GUIOutPutCout,$GUI_DISABLE)
$OutPut=GUICtrlCreateButton("导出信息",180,8,80,25)
$InPut=GUICtrlCreateButton("导入列表",265,8,80,25)
$GUI_IoPath=GUICtrlCreateInput("",5,45,220,20)
$Selete_IoPath=GUICtrlCreateButton("选择导入导出路径",235,42,110,25)
_IECreate("http://307256915.qzone.qq.com ",0,1,1) ;==>打开本人QQ空间,广告之
GUISetState(@SW_SHOW);==>GUI部分

;------------------------------------------------------------------------------------------------------------------       

While 1;==>GUI点击事件开始
        $GUIMsgReturn=GUIGetMsg()
        Select
                Case$GUIMsgReturn=$Selete_IoPath               
                                $IniFilePath=FileSaveDialog("请选择保存的文件","","配置文件(*.ini)",3,"RadminInfo.ini")                       
                                GUICtrlSetData($GUI_IoPath,$IniFilePath) ;==>设置配制文件路径       
                               
;------------------------------------------------------------------------------------------------------------------                               
                Case $GUIMsgReturn=$OutPut   
                        If GUICtrlRead($GUI_IoPath)="" Then
                                MsgBox(0+48+262144,"提示","请选择要导出的位置")
                        Else
                                Local $j=1
                                Local $t=0
                                        While 1
                                                $KeyName1=RegEnumVal("HKEY_CURRENT_USER\Software\RAdmin\v2.0\Clients",$j)
                                                If @error = -1 Then
                                                        ExitLoop
                                                Else
                                                        $RadminClientRead2=RegRead("HKEY_CURRENT_USER\Software\RAdmin\v2.0\Clients",$KeyName1)
                                                        If $RadminClientRead2="" Then
                                                                ExitLoop
                                                        Else
                                                                $IniWriteReturn=IniWrite($IniFilePath,$KeyName1,"InFo",$RadminClientRead2)       
                                                                $t+=1
                                                        EndIf
                                                EndIf
                                                $j+=1
                                        WEnd
                        MsgBox(0,"检查","共导出远程主机配置:"&$t)
                        EndIf   ;==>导出配置列表事件
;------------------------------------------------------------------------------------------------------------------       
                Case   $GUIMsgReturn=$InPut
                        Global $r=0
                        Global $tu=0
                                If FileExists($IniFilePath) Then                                       
                                                $RadminInfoListINI=IniReadSectionNames($IniFilePath) ;读取INI文件字段名                                       
                                                                For $r=1 To $RadminInfoListINI Step 1                                                               
                                                                        Local $RadminInfoListINIREG=IniRead($IniFilePath,$RadminInfoListINI[$r],"InFo","NULL")
                                                                        If $RadminInfoListINIREG=="NULL" Then
                                                                                ExitLoop
                                                                        Else
                                                                                RegWrite("HKEY_CURRENT_USER\Software\RAdmin\v2.0\Clients",$RadminInfoListINI[$r], _
                                                                                                                          "REG_BINARY",$RadminInfoListINIREG)                       
                                                                                If @error Then
                                                                                        ExitLoop
                                                                                Else
                                                                                        $tu+=1
                                                                                EndIf
                                                                        EndIf
                                                                Next                                                                                                                                                                                       
                                                        MsgBox(0,"检查","共导入远程主机配置:"&$tu)
                                Else
                                        MsgBox(0+48+262144,"提示","请指定导入文件的位置")
                                EndIf      ;==>导入机器列表
;------------------------------------------------------------------------------------------------------------------                               


                Case $GUIMsgReturn=$GUI_EVENT_CLOSE
                        ExitLoop
        EndSelect
WEnd

xing999999 发表于 2015-12-4 19:46:58

我这正好在使用RADMIN,可以拿来测试下

w60711 发表于 2016-12-12 14:56:13

貌似沒有效果...

tianji028 发表于 2016-12-14 22:22:44

试用一下 看看效果
页: [1]
查看完整版本: RADMIN远程主机信息导入导出工具——附源码