史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 應用軟體使用技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-09-01, 10:18 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 軟體 - AutoIt實現AVP增量病毒庫自動下載和LAN內AVP Personal Pro客戶端升級實例

今天碰到一個朋友,向我徵求LAN(客戶機與Internet隔離)的AVP Personal Pro升級的方法。

網路情況:
企業LAN服務器可以連接Internet,客戶機不能連Internet。服務器對LAN不開放資料夾共享,只開放http和ftp。沒有AVP服務器版,安裝的全部都是AVP Personal Pro。

一開始,我提供的方法就是網管手動下載增量病毒庫,並解壓放到服務器的IIS資料夾上作為LAN的http Update url,修改客戶端AVP Personal Pro的update url為LAN的http Update url。

但是每天下載畢竟是一件很麻煩的事情,然後偶開始研究如何能讓服務器實現自動下載增量病毒庫並自動解壓到為LAN提供的升級資料夾上。於是今天研究了半天AutoIt的腳本,寫出了這麼個東西。

需求:
1.winzip Pro
2. WinZip Command Line Support Add-On 1.1 Service Release 1 (SR-1)


基本思路:實現每24小時下載一次增量病毒庫並解壓到指定資料夾。首次執行程式的時候,需要手工選擇增量病毒庫解壓的路徑。其中的ini文件記錄解壓路徑和最後一次更新的日期時間。
安裝winzip和 command Line support是解壓文件的需要,並且需要將wzunzip.exe和編譯後的文件放在同一個資料夾內。

下面是源碼,附件是編譯好的程式。第一次使用AutoIt,難免粗陋,希望大家多多指教。


代碼:
----------------------------------------------------------------------------
;
; AutoIt Version: 3.1.0
; Author: bbs@topoo
;
; Script Function:
; Template AutoIt script.
;
; ----------------------------------------------------------------------------

#include <GUIConstants.au3>
#include <Constants.au3>
#Include <date.au3>

$unzip = 0
$dir = IniRead("updater.ini", "PATH", "Update Directory", "")
If ($dir = "") Then
MsgBox(0, "Welcome", "如果這是您第一次使用該程式,請選擇病毒庫的更新資料夾,此後自動更新的病毒庫將會自動解壓到該資料夾中,以後也可以自行更改updater.ini文件中的路徑,或者清空updater.ini文件的內容並重新執行程式來選擇資料夾。")
EndIf

While ($dir = "")
$dir = FileSelectFolder("請選擇升級文件解壓路徑", "", 1)
If ($dir <> "") Then
IniWrite("updater.ini", "PATH", "Update Directory", $dir)
EndIf
WEnd

While 1
If FileExists("daily.zip") Then
FileDelete("daily.zip")
EndIf

InetGet("http://d-ru-2h.kaspersky-labs.com/bases/av/avc/i386_zip/daily.zip", "daily.zip", 1, 1)
While @InetGetActive
TrayTip("正在下載病毒庫升級文件", "已下載字節數 " & @InetGetBytesRead, 10, 16)
Sleep(250)
WEnd
If ($unzip = 0 And (Not @InetGetActive)) Then
TrayTip("正在解壓病毒庫到更新資料夾", "", 5)
RunWait(@ComSpec & " /c " & 'wzunzip.exe -do daily.zip ' & $dir, "", @SW_HIDE)
$unzip = 1
IniWrite("updater.ini", "Last Updated", "Date", _NowDate())
IniWrite("updater.ini", "Last Updated", "Time", _NowTime())
EndIf
Sleep(86400000)
$unzip = 0
WEnd
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 12:09 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1