Um mit Autoit zu entpacken gibt es UDFs habe hir ma was
[ offen ] Zip und Rar Dateien entpacken
Setup selber Scripten
-
- [ offen ]
-
franjob -
11. Juli 2009 um 12:10 -
Geschlossen -
Erledigt
-
-
Spoiler anzeigen
C
Alles anzeigen#cs ZIP UDF by Huggy +++++++++++++++++++++++++#########++++++++++ FUNKTIONEN ###############+++++++++++############### _ExtractAll($packed, $target) : Entpackt das archiv $packed ins verzeichniss $target _FileToARchive($path, $packed) : Packt eine Datei in ein Archiv namens $packed ($packed muss der Zielpfad, also zb C:\Ziel.zip sein, Ausgabe ist ZIP Format! _listArchive($packed) : Gibt den Inhalt und Infos der gepackten Datei zurück - als array! benutzung zb: _ArrayDisplay(_listArchive("C:\Programme\7-Zip\asd\222.zip")) _dirToArchive($dir, $packed, $sub = 1) : Kopiert einen gesamten ordner - inklusive unterordner - des verzeichnisses $dir (ZB: C:\Programme\7-Zip) in das Archiv $packed! WEnn KEINE unterordner kopiert werden sollen, so aufrufen: _DirToArchive("C:\Programme\7-Zip\, "C:\lol\lol.zip\, 0) ! #ce #include <File.au3> #include <Array.au3> DIM $array DIM $datein ;############Bereit machen für Funktionen############### if FileExists(@ScriptDir & "\7z.exe") Then FileCopy(@ScriptDir & "\7z.exe", @TempDir & "\7z.exe") Endif FileInstall("C:\Programme\7-Zip\7z.exe", @TEmpDir & "\7z.exe") ; wenn Compiled, wird 7z.exe ins TempDir geschoben sleep(50) if FileExists(@TEmpDir & "\7z.exe") Then ; sollte es nicht compiliert sein, oder einfach ein fehler, dann schau in der Registry ob installiert ;nix ;P Else $pfad = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip", "Path") $check = FileCopy($pfad & "\7z.exe", @TempDir & "\7z.exe") sleep(50) If FileExists(@ScriptDir & "\7z.exe") AND if NOT FileExists(@tEmpDir & "\7z.exe")Then FileCopy(@ScriptDir & "\7z.exe", @TempDir & "\7z.exe") Else MsgBox(0, "ERROR", "KONNTE 7z.exe nicht finden!") Endif EndIf ;####################Fertig für Funktionen############### Func _ExtractAll($packed, $target) FileWrite(@TEmpDir & "\7t.bat", "@Echo off" & @Crlf) FileWrite(@TEmpDir & "\7t.bat", "7z.exe x -o"&$target&" " & $packed & @Crlf) FileWrite(@TEmpDir & "\7t.bat", "exit" & @Crlf) sleep(200) Run(@TempDir & "\7t.bat", @TempDir) EndFunc Func _FileToArchive($path, $packed) FileWrite(@TEmpDir & "\7z.bat", "@Echo off" & @Crlf) FileWrite(@TEmpDir & "\7z.bat", "7z.exe a -tzip "& $packed &" " & $path & @Crlf) Run(@TEmpDir & "\7z.bat", @tempdir) EndFunc Func _dirToArchive($dir, $packed, $sub = 1) FileWrite(@TEmpDir & "\7a.bat", "@Echo off" & @Crlf) if $sub <> 1 Then FileWrite(@TEmpdir & "\list.txt", $dir & "\*.*") Else FileWrite(@TEmpdir & "\list.txt", $dir & "\*") Endif FileWrite(@TEmpDir & "\7a.bat", "7z.exe a -tzip "& $packed & " @list.txt") Run(@TempDir & "\7a.bat", @TEmpDir) sleep(10000) FileDelete(@TempDir & "\*.bat") EndFunc Func _listArchive($packed) sleep(500) FileWrite(@TEmpDir & "\7w.bat", "@Echo off" & @Crlf) FileWrite(@TEmpDir & "\7w.bat", "7z.exe l " & $packed &" >> " &@TempDir & "\archiv.txt") sleep(100) Run(@TEmpDir & "\7w.bat", @tempdir) sleep(200) _FileReadTOarray(@TempDir & "\archiv.txt", $array) RETURN $array EndFunc FileDelete(@TempDir & "\*.bat") FileDelete(@TempDir & "\*.txt")
Bei dem kommt bei mir immer ein Fehler in line 42 -
Bei mir funzt das hir sehr gut
-
und wie sollte ich das jetzt in mein script bringen das heißt ich wenn button isntallieren dann start func zip in der zip funkt steht dann halt der code von der 7zip au3. aber wo bekomme ich die 7zip dll her die man braucvht??
-
Versuch das ma
-
kannst du dir mal den therad koda form designer problem anschauen auch hier im forum
-
Wie schaff ich es dass der progress nur so lange andauert bis die fileistalls sind.
Ja und wie schaffe ich es wenn ich mehrere programme in einer setupt file sind. dass man welche asuwählen kann. Ich habe keine Lust dass ich da alle möglichekeiten in einer if else abfrage mache. Das Problem ist ich mache es gerade mit onevent und wenn ich auf weiter klicke dann werden die alten gui buttons und checkboxes gelöscht. Also das heißt im klaren kann man nocht festellen ob die chaackbox angeklickt war auch wenn sie gelöscht wurde???EDIT 1: Mei naktueller code ist dieser:
Spoiler anzeigen
C
Alles anzeigen#NoTrayIcon #include <GuiComboBoxEx.au3> #include <GuiImageList.au3> #include <GuiConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <EditConstants.au3> #include <ButtonConstants.au3> DirCreate ( @ScriptDir & "\Files") FileInstall ("C:\Users\Franz\Desktop\lizens.txt", @ScriptDir & "\Files\lizens.DATA") $file = FileRead ( @ScriptDir & "\Files\lizens.DATA") $Form1 = GUICreate("Setup-Hotkeymanager", 536, 401, 888, 207) $Pic1 = GUICtrlCreatePic("left.jpg", 0, 0, 100, 320, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS)) $Pic2 = GUICtrlCreatePic("line.jpg", 100, 319, 435, 1, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS)) $Button1 = GUICtrlCreateButton("Abbrechen", 432, 344, 89, 25, $WS_GROUP) $Button2 = GUICtrlCreateButton("Weiter", 326, 344, 89, 25, $WS_GROUP) $Label1 = GUICtrlCreateLabel("Willkommen zum Hotkeymanager", 112, 8, 287, 28) GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif") $Label2 = GUICtrlCreateLabel("Setup-Assistenten", 112, 48, 155, 28) GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif") $Label3 = GUICtrlCreateLabel("Dieser Assistent wird jetzt Hotkeymanager 0.5 auf Ihrem", 112, 96, 269, 17) $Label4 = GUICtrlCreateLabel("Computer installieren.", 112, 120, 104, 17) $Label5 = GUICtrlCreateLabel("Sie sollten alle anderen Anwendungen beenden, bevor Sie mit ", 112, 160, 300, 17) $Label6 = GUICtrlCreateLabel("dem Setup fortfahren.", 112, 184, 106, 17) $Label7 = GUICtrlCreateLabel("Weiter zum Fortfahren, Abbrechen zum Verlassen", 112, 224, 237, 17) GUISetState(@SW_SHOW) Opt("GUIOnEventMode", 1) GUICtrlSetOnEvent($GUI_EVENT_CLOSE, "_exit") GUICtrlSetOnEvent ( $Button1, "_msg") GUICtrlSetOnEvent ( $Button2, "_weiter") While 1 Sleep (1) WEnd Func _exit() Exit EndFunc Func _msg() If MsgBox(32 + 4, "Beenden", "Wollen sie wirklich Installation beenden?") = 6 Then _abbrechen() EndFunc Func _abbrechen() DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $Form1, "int", 500, 0x00050004) Exit EndFunc Func _weiter() GUICtrlDelete ( $Button1) GUICtrlDelete ( $Button2) GUICtrlDelete ( $Label1) GUICtrlDelete ( $Label2) GUICtrlDelete ( $Label3) GUICtrlDelete ( $Label4) GUICtrlDelete ( $Label5) GUICtrlDelete ( $Label6) GUICtrlDelete ( $Label7) EndFunc
Aber bei dem Code funktioniert es nicht wenn man oben auf das X klickt dann schließt es aber nicht. Warum?? -
Mit den mehreren Dateien würde ich ein Combo nehmen.
-
franjob so weit bin ich schon mal wie gesagt probiere es morgen fertig zu haben
pS das webradio kommt oben weck da kommt dann Setup-Assistenten hin okay
-
Ja siet richtig gut aus!!!!!!!!!!!Mit ner combo is es schlecht ich habe mehre proggramme und man soll mehrer istallieren könne!
-
so habe die neue Version von Setup veröffentlicht ich hoffe es hilft dir einwenig weiter Version ist aber noch nicht 100 % ausgereift
-
Verwendet einfach Inno Setup ...
Damit lassen sich ganz easy Installationen erstellen. Man muss einfach nur die Gui zusammenklicken. Das Setup von Sirocool sieht aus wie damit gemacht. Btw. es gibt noch weitere Programme die genau das können, jedoch finde ich Inno Setup bisher am besten.
Mfg
Jautois -