进入快盘 | 申领稿费  |  新人报到  |  意见建议 | 购买卡币    
 44 123
发新话题
打印

[资源] 可用于卡巴6、7的“离线升级包制作”AutoIt源码、工具分享

可用于卡巴6、7的“离线升级包制作”AutoIt源码、工具分享

;此源码是本人用AutoIt(一种批处理制作工具,语言类似于VB)编辑制作(可转为VB),欢迎交流改进,并及时发布!

;经试验在kis6/kav6、kis7/kav7升级基本都能成功(未完全测试:)主要是很少安装kav)

; 请置于脚本顶部
dim $kb_name,$kb_ver,$kb_cname,$kbVer,$KbNY ;$kb_name是kis还是kav|$kb_ver卡巴版本例如:6.0.2.621|$kb_cname安装卡巴的全名称如:卡巴斯基互联网安全套装 6.0
$g_szVersion = "卡巴KIS/KAV离线升级包制作1.04 曾大虾" ;软件版本

If WinExists($g_szVersion) Then ;判断是否有重复运行的本程序
 MsgBox(16,"提示","重复的程序运行!")
 Exit
endif

AutoItWinSetTitle($g_szVersion)
  $KbNY=RegEnumVal ("HKLM\SOFTWARE\KasperskyLab\SetupFolders", 1) ;读注册表,卡巴是否存在
   if @error=1 or  @error=-1 or  @error=-2 Then    
    MsgBox(4096, "失败", "没有发现安装的卡巴!")
    Exit
   endif
   
   Select ;判断卡巴是6.0还是7.0
    Case StringRight($KbNY,1)="6"
      $kbVer="AVP6"
    case StringRight($KbNY,1)="7"
     $kbVer="protected\AVP7"
   EndSelect 
 
  $kb_name=RegRead("HKLM\SOFTWARE\KasperskyLab\" & $kbVer & "\environment", "ProductType") ;读注册表,取是kis还是kav
  $kb_ver=RegRead("HKLM\SOFTWARE\KasperskyLab\" & $kbVer & "\environment", "ProductVersion") ;读注册表,取卡巴版本
  $kb_cname=RegRead("HKLM\SOFTWARE\KasperskyLab\" & $kbVer & "\environment", "ProductName") ;读注册表,取卡巴的全名称

;以下为呈现给用户的图形界面设置
#include <GUIConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate($g_szVersion, 400, 300, 303, 219) ;显示的窗体
;显示的卡巴信息
$LAB=GUICtrlCreateLabel("你安装的卡巴是:" & $kb_cname & @LF & "版本" & $kb_name & $kb_ver & " OS:" & @OSVersion,8,20,380,30,$SS_CENTER)
GUICtrlSetFont(-1, 11, 800, 0, "宋体")
GUICtrlSetColor(-1, 0xFF0000)
GUISetState(@SW_SHOW)
;"生成离线升级备份"按钮
$ABt = GUICtrlCreateButton("生成离线升级备份", 90, 60, 200, 33, 0)
GUICtrlSetFont(-1, 12, 400, 0, "宋体")
GUISetState(@SW_SHOW)
;显示的状态框
$Edit1 = GUICtrlCreateEdit("", 40, 120, 300, 160,BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_VSCROLL))
GUICtrlSetData(-1, "状态监视器")
GUICtrlSetFont(-1, 11, 400, 0, "宋体")
GUICtrlSetColor(-1, 0xFF0000)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;以上为呈现给用户的图形界面设置
;一个自定义函数,为判断状态列表显示的“成功失败”字符串
Func TestFunc($as)
    if $as=1 then
  $as=StringFormat("\r\n成功")
 else
  $as=StringFormat("\r\n失败")
 endif
 Return $as 
EndFunc

;以下为程序主体
While 1
 $nMsg = GUIGetMsg()
 Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit

  Case $ABt ;点击"生成离线升级备份"按钮时的过程
   ;图形界面的变化
   GUICtrlSetCursor($ABt,15)
   $LAB1=GUICtrlCreateLabel("请等待!…………",100,100,150,20,$SS_CENTER)
    GUICtrlSetFont(-1, 11, 800, 0, "宋体")
    GUICtrlSetColor(-1, 0xFF0000)
    GUISetState(@SW_SHOW)
    GUICtrlSetData($Edit1,"")
    GUICtrlSetData($Edit1,"状态监视器" & @CRLF & $kb_name & $kb_ver & " OS:" & @OSVersion)
   ControlDisable($g_szVersion, "生成离线升级备份", $ABt)
   
   dim $kb_ml,$XX=0,$new_ml,$kb_dat,$xh=0 ;声明变量
   
   $new_ml=".\" & $kb_name & $kb_ver & "离线升级备份包"  & @YEAR & @MON & @MDAY ;生成离线升级包目录名称
   
   $kb_ml=RegRead("HKLM\SOFTWARE\KasperskyLab\" & $kbVer & "\environment", "ProductRoot") ;取卡巴安装目录
    if StringRight($kb_ml,1)<>"\" then $kb_ml=$kb_ml & "\"
   $kb_dat=RegRead("HKLM\SOFTWARE\KasperskyLab\" & $kbVer & "\environment", "DataRoot") ;取卡巴病毒库目录
    if StringRight($kb_dat,1)<>"\" then $kb_dat=$kb_dat & "\"
    DirCreate($new_ml) ;在程序当前目录下创建备份目录
    ;需拷贝的文件列表
     $kb_fstr="Bases\*.*|" & _
              "Data\*.*|" & _
        "Dskm\*.*|" & _
        "\system32\drivers\klif.sys|" & _
        "bl.ppl|" & _
        "pop3protocoller.ppl|" & _
        "imapprotocoller.ppl|" & _
        "updater2005.ppl|" & _
        "avpgui.ppl|" & _
        "mdb.ppl|" & _
        "crpthlpr.ppl|" & _
        "fssync.dll|" & _
        "httpanlz.ppl|" & _
        "ichk2.ppl|" & _
        "lic60.ppl|" & _
        "oas.ppl|" & _
        "prloader.dll|" & _
        "trainsupport.ppl|" & _
        "execinstaller.ppl|" & _
        "baseinstaller.ppl"
     $kb_file=StringSplit($kb_fstr,"|") ;字符串转数组
     ;病毒库复制
     for $xh=1 to 3 
      $XX=FileCopy($kb_dat & $kb_file[$xh], $new_ml,1)
       GUICtrlSetData($Edit1,TestFunc($XX ) & "A" & $xh,"状态监视器")
     next
      $XX=FileCopy(@WindowsDir & $kb_file[4], $new_ml,1)
       GUICtrlSetData($Edit1,TestFunc($XX ) & "A4","状态监视器")
    ;根据版本复制所需文件
    if $kb_ver="6.0.2.546" then
     $ed=18
    Else
     $ed=20
    endif
     for $xh=5 to $ed
      $XX=FileCopy ($kb_ml & $kb_file[$xh],$new_ml,1)
       GUICtrlSetData($Edit1,TestFunc($XX ) & "A" & $xh,"状态监视器")
     next
    if $kb_ver="6.0.0.300" then
     $XX=FileCopy ($kb_ml & "avp.RPT",$new_ml,1)
     GUICtrlSetData($Edit1,TestFunc($XX ) & "B1","状态监视器")
    endif

   MsgBox(64,"提示21","离线升级备份制作完成!" & @LF & "请在本程序目录下查看“" & $kb_name & $kb_ver & "离线升级备份包" & "”目录")

   ;图形界面的变化
   ControlEnable($g_szVersion, "生成离线升级备份", $ABt)
   GUICtrlSetData ($LAB1, "" )
   GUICtrlSetCursor ($ABt,2)
EndSwitch
WEnd

 

关于Autoit技术及下载:

  1、Autoit 技术交流论坛

   2、一大步

 

编译好了的程序:[attach]12308[/attach]

[attach]12309[/attach]

[ 本帖最后由 曾大虾 于 2007-7-24 11:14 编辑 ]

TOP

谢谢楼主的分享,我也下载了!

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

非常喜欢你的汉化作品

TOP

真的是不懂代码啊,有工具不

关于Autoit技术及下载:

  1、Autoit 技术交流论坛

   2、一大步

有编译好了的,附件已经上传了!

[ 本帖最后由 曾大虾 于 2007-7-16 12:23 编辑 ]
有编译好了的====
谢谢楼主
“离线升级包制作”AutoIt源码可用于卡巴6、7了,请大家试试
源码的东西真是不大懂,有工具吗?
谢谢楼主,但偶看不懂呢,呵呵,支持

TOP

可以直接使用制作好了的工具啊,下载后解压,然后直接运行即可!

TOP

可以生成离线包了,但是怎么升级啊? 大虾能指点下吗?在卡巴“更新”设置中,老是有问题啊? 谢谢

TOP

谢谢楼主,不错,很好用

TOP

能否做一个出来让大家用用看啊?

TOP

制作包的时候,有些显示的是错误,内容如下: 状态监视器 kis7.0.0.125 OS:WIN_XP 成功A1 成功A2 成功A3 成功A4 成功A5 失败A6 失败A7 失败A8 成功A9 成功A10 成功A11 成功A12 成功A13 成功A14 失败A15 成功A16 成功A17 失败A18 失败A19 失败A20

TOP

支持原创,感谢 分享。

TOP

怎么使用呢?

下载了,可以生成升级包,但怎么使用呢

TOP

謝謝了阿 :@4#

TOP

在混混KAV.6.0.2.621.EXE备份状态: 状态监视器 kav6.0.2.621 OS:WIN_XP 成功A1 成功A2 成功A3 成功A4 成功A5 成功A6 成功A7 成功A8 成功A9 成功A10 成功A11 成功A12 成功A13 成功A14 成功A15 成功A16 成功A17 失败A18 失败A19 失败A20

TOP

 44 123
发新话题