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
我这正好在使用RADMIN,可以拿来测试下 貌似沒有效果... 试用一下 看看效果
页:
[1]