Hi, hab mal als mein Anfangsprojekt nen 7-Zip autodownloader+installer gemacht.
Es unterstützt die normale version und die beta 4.60.
Der Download wird als progressbar inner gui angezeigt.
Hoffe es gefällt euch
Quellcode:
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
Switch MsgBox(36, "7-Zip 32-Bit Installer", "Soll 7-Zip jetzt heruntergeladen und Installiert werden?")
Case 6
$Form1 = GUICreate("Bitte warten, 7-Zip wird heuntergeladen...", 418, 18, 432, 190, BitOR($WS_CAPTION, $WS_POPUP, $WS_BORDER, $WS_CLIPSIBLINGS))
$Progress1 = GUICtrlCreateProgress(0, 0, 417, 17, $PBS_SMOOTH)
If MsgBox(36, "Beta-Version?", "Soll die Beta-Version (v.4.60) heruntergeladen werden?") = 6 Then
$sizebeta = InetGetSize("http://downloads.sourceforge.net/sevenzip/7z460.exe")
GUICtrlSetLimit($Progress1, $sizebeta, 0)
InetGet("http://downloads.sourceforge.net/sevenzip/7z460.exe", @TempDir & "\7z460.exe", 1, 1)
GUISetState(@SW_SHOW)
While 1
GUICtrlSetData($Progress1, @InetGetBytesRead)
If @InetGetActive = 0 Then ExitLoop
WEnd
GUIDelete()
Run(@TempDir & "\7z460.exe")
WinWaitActive("7-Zip 4.60 beta Setup ","following folder")
Send("!i")
WinWaitActive("7-Zip 4.60 beta Setup ","Click Finish to close")
send("!f")
Run(@ProgramFilesDir & "\7-Zip\7zfm.exe")
Else
$sizenormal = InetGetSize("http://downloads.sourceforge.net/sevenzip/7z457.exe")
GUICtrlSetLimit($Progress1, $sizenormal, 0)
InetGet("http://downloads.sourceforge.net/sevenzip/7z457.exe", @TempDir & "\7z457.exe", 1, 1)
GUISetState(@SW_SHOW)
While 1
GUICtrlSetData($Progress1, @InetGetBytesRead)
If @InetGetActive = 0 Then ExitLoop
WEnd
GUIDelete()
Run(@TempDir & "\7z457.exe")
WinWaitActive("7-Zip 4.57 Setup ","following folder")
Send("!i")
WinWaitActive("7-Zip 4.57 Setup ","Click Finish to close")
send("!f")
Run(@ProgramFilesDir & "\7-Zip\7zfm.exe")
EndIf
Case 7
Exit
EndSwitch