Ok werds mal versuchen, ob ich es so hinbekommen, wie ich es will.
Danke erstmal
Beiträge von LatroX
-
-
Hallo liebe Community,
gibt es eine Möglichkeit ein Script zu erstellen, dass von einen fix eingetragen FTP Server Daten herunterlädt und auf einen im GUI eingetragenen Server hochlädt?
Zur Verständnis: Ich habe an einen Webseiten Updater gedacht, der die Version überprüft und bei Bedarf aktualisiert.
Ist die Umsetzung irgendwie möglich?MfG LatroX
-
@ Schnitzel & Detroit49: hört sich ganz super an aber wie soll ich das umsetzen? Bin schon komplett verwirrt
PS.: @ Schnitzel: man solls ja auch nur installieren können ums offline zu benutzen und nicht immer neu downloaden zu müssen
-
ok das is es mir nicht wert für so eine kleine Änderung alles auf dem Kopf schmeißen
PS.: hab schon 2953 Zeilen ;P für das komplette script wie es am Bild ist und dann kommen noch der Updater und der Updater vom Updater dazu.
-
Dann würd ich dir raten das Programm ersteinmal so einfach wie möglich zu halten.
Einfach so vorgehen wie ich es oben beschrieben hab:Spoiler anzeigen
[autoit]Case $Button2
[/autoit]
If FileExists($downloadpfad) Then
; nur als beispiel:
Shellexecute("AdobeReaderinstall.exe")
Winwait(....)
Controlclick(......)
Else
MsgBox(0,"", "Erst downloaden dann installieren -.-")
EndIfPraktischer Funkionen und Userfreundlichere Bedienung kannst du im nachhinein immer noch einbauen
Das Problem is aber das ich mit Checkboxen arbeite...
würd das gerne so wie ich das jetzt habe umbauen -
@ Schnitzel: bin nicht so fit zum Thema AutoIt^^
@ Der_Doc: das ganze hört sich so kompliziert für mich an -
@ Schnitzel: das hört sich gut an aber auch kompliziert... wenn man das auf alle programme anwenden will auch ein bissl arbeit
@ alexanderschill : wollte ich ja aber sag mir mal bitte wie ich das beschreiben soll in kurzen worten? -
@ Der_Doc: ich hab 25 Programme im original script das wird so nicht gehen
-
also der installieren() wert von dir wie soll das aussehen blick da nicht ganz durch
-
Hallo liebe AutoIt-Coder
,
ich hätte da ein kleines Problem ich hoffe ihr könnt mir da weiterhelfen.
Also...
Zur Erläuterung was ich genau will:Vorweg ein Bild vom Programm:
[Blockierte Grafik: http://www.dl-installer.latrox.at/v1.2.1.png]Das Programm funktioniert so, dass man die Programme die man haben will anhakt, dann auf Downloaden klickt wartet bis das fertig ist und dann auf Installieren klickt.
Aber da viele Leute die Programme anhaken und dann aber gleich auf Installieren klicken will ich, dass wenn man gleich auf Installieren klickt (wenn das Programm nicht downgeloaded wurde) eine MsgBox kommt mit z.B. Sie müssen erst "BlaBlaBla" Downloaden, aber wenn das Programm vorhanden ist einfach normal installiert.Hier ein kleiner Ausschnitt aus meinem Script:
[autoit]
[/autoit][autoit][/autoit][autoit]
$Form1 = GUICreate("LatroX's Download-Installer v1.2.1", 625, 500, 50, 50)
$Button2 = GUICtrlCreateButton("Installieren", 376, 426, 113, 25, $WS_GROUP)
$Checkbox1 = GUICtrlCreateCheckbox("Adobe Reader", 32, 136, 150, 17)GUISetState () ;Show GUI
[/autoit][autoit][/autoit][autoit]While 1
[/autoit][autoit][/autoit][autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitCase $Button2
[/autoit][autoit][/autoit][autoit]If GUICtrlRead($Checkbox1) = 1 Then RunWait("iwas.exe")
[/autoit]Danke für eure Bemühungen
Mit freundlichen Grüßen
LatroX
-
Es lag an der Reihenfolge, wie du es gemacht hast. Bei einem Klick auf $Button2 lässt du erst $Obj1 erscheinen und dann $Obj2 verschwinden. Das Problem dabei ist dann, wenn $Obj2 gar nicht sichtbar ist. Dann entsteht dieses weiße Rechteck. Wenn du auf den Browser klickst, kannst du ihn wieder sehen.
So funktioniert es:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>$Form1 = GUICreate("BLUB", 625, 465, 640, 280)
[/autoit] [autoit][/autoit] [autoit]
$Button1 = GUICtrlCreateButton("erster Browser", 136, 96, 113, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("zweiter Browser", 256, 96, 113, 25, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Nichts", 16, 96, 113, 25, $WS_GROUP)
$Obj1 = ObjCreate("Shell.Explorer.2")
$Obj1_ctrl = GUICtrlCreateObj($Obj1, 8, 128, 610, 292)
GUICtrlSetState(-1, $GUI_Hide)
$Obj2 = ObjCreate("Shell.Explorer.2")
$Obj2_ctrl = GUICtrlCreateObj($Obj2, 8, 128, 610, 292)
GUICtrlSetState(-1, $GUI_Hide)GUISetState() ;Show GUI
[/autoit] [autoit][/autoit] [autoit]$Obj1.navigate("http://www.autoitscript.com")
[/autoit] [autoit][/autoit] [autoit]
$Obj2.navigate("http://www.autoit.de")While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitCase $Button1
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetState($Button1, $GUI_Disable)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($Button2, $GUI_Enable)
GUICtrlSetState($Button3, $GUI_Enable)GUICtrlSetState($Obj2_ctrl, $GUI_Hide)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($Obj1_ctrl, $GUI_SHOW)Case $Button2
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetState($Button1, $GUI_Enable)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($Button2, $GUI_Disable)
GUICtrlSetState($Button3, $GUI_Enable)GUICtrlSetState($Obj1_ctrl, $GUI_Hide)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($Obj2_ctrl, $GUI_SHOW)Case $Button3
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetState($Button1, $GUI_Enable)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($Button2, $GUI_Enable)
GUICtrlSetState($Button3, $GUI_Disable)GUICtrlSetState($Obj1_ctrl, $GUI_Hide)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($Obj2_ctrl, $GUI_Hide)EndSwitch
[/autoit]
WEndFichteFoll: echt FETTES Danke
das wars...
so ein kleiner Fehler
könnt hier dicht machen
Mfg
LatroX
-
ich glaub ich verstehe nicht ganz was du meinst...
aber ich glaub das is dann nicht so wie ich das haben will...kann mir bitte wer helfen
Mfg
LatroX
-
also bei mir is es so: wenn ich am Anfang gleich "erster Browser" klick geht der nicht.
nur wenn ich dann auf "zweiter Browser" klick und dann wieder "erster Browser" geht der.
oder wenn ich "Nichts" drück und dann "erster Browser" gehts auch net...naja vllt kann mir einer helfen...
wäre echt toll...
-
Hallo liebe Community,
ich würde eure Hilfe brauchen...
Also ich habe das Problem das der erste Browser nicht immer angezeigt wird und ich würde gerne wissen wieso das so is...
und wenn möglich beheben ;Peure klugen Köpfe sind gefragt...
Spoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>$Form1 = GUICreate("BLUB", 625, 465, 640, 280)
[/autoit] [autoit][/autoit] [autoit]
$Button1 = GUICtrlCreateButton("erster Browser", 136, 96, 113, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("zweiter Browser", 256, 96, 113, 25, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Nichts", 16, 96, 113, 25, $WS_GROUP)
$Obj1 = ObjCreate("Shell.Explorer.2")
$Obj1_ctrl = GUICtrlCreateObj($Obj1, 8, 128, 610, 292)
GUICtrlSetState(-1, $GUI_Hide)
$Obj2 = ObjCreate("Shell.Explorer.2")
$Obj2_ctrl = GUICtrlCreateObj($Obj2, 8, 128, 610, 292)
GUICtrlSetState(-1, $GUI_Hide)GUISetState () ;Show GUI
[/autoit] [autoit][/autoit] [autoit]$Obj1.navigate("http://www.google.at")
[/autoit] [autoit][/autoit] [autoit]
$Obj2.navigate("http://www.autoit.de")While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitCase $Button1
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetState($Button1, $GUI_Disable)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($Button2, $GUI_Enable)
GUICtrlSetState($Button3, $GUI_Enable)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($Obj1_ctrl, $GUI_SHOW)
GUICtrlSetState($Obj2_ctrl, $GUI_HIDE)
Case $Button2GUICtrlSetState($Button1, $GUI_Enable)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($Button2, $GUI_Disable)
GUICtrlSetState($Button3, $GUI_Enable)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($Obj1_ctrl, $GUI_HIDE)
GUICtrlSetState($Obj2_ctrl, $GUI_SHOW)Case $Button3
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetState($Button1, $GUI_Enable)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($Button2, $GUI_Enable)
GUICtrlSetState($Button3, $GUI_Disable)
[/autoit] [autoit][/autoit] [autoit][/autoit]
GUICtrlSetState($Obj1_ctrl, $GUI_HIDE)
GUICtrlSetState($Obj2_ctrl, $GUI_HIDE)
EndSwitch
WEndDanke für eure Bemühungen
Mit freundlichen Grüßen
LatroX
-
Ich hätte noch eine Frage dazu.
ist es möglich den Updater auch upzudaten?
weil wärend des updates kann er den Updater ja nicht ersetzen oder?
Bitte um EURE Hilfe
Mit freundlichen Grüßen
LatroX
-
LOL
es geht
DANKE !!!
Ich bin ein Idiot...
ich hatte die Datein schon am Desktop is klar das ich keinen Unterschied merke...
ich dachte nur das die Sachen in den Data Ordner gehen...
Wofür erstellt er dann überhaupt den Ordner
Es GEHT !!!
Das freut mich.Vielen Dank an euche beide.
-
also bei mir geht das iwie net...
kann vllt noch wer das script austesten?
bei mir entpackt er nix in den Data Ordner und er läd auch nix runter...
es zeigt mir zwar keinen Fehler an aber es geht auch nicht...
was mach ich nur falsch?
bitte um Hilfe -
Hallo liebe AutoIt Community,
ich muss mal vorweg sagen das ich das script von tuttifrutti abgekupfert habe. Wenns mir nicht gestattet ist bitte melden, aber ich fand das halt echt super gemacht. nur leider gehts nicht... zumindest nicht ganz.
Also... Mein Problem ist das er alles durch macht aber die Datein dann aber nich da sind
Hier mal das Script:
Spoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <INet.au3>
Const $vUpdateServer = "crazygamingcrew.spacequadrat.de"
Const $vScriptFile = "http://www.crazygamingcrew.spacequadrat.de/spinstaller/version.txt"
Const $vChangelogFile = "http://www.crazygamingcrew.spacequadrat.de/spinstaller/changelog.txt"
Const $vUnrarDLL = "http://www.crazygamingcrew.spacequadrat.de/spinstaller/unrar.dll"
Const $vMapFiles = "http://www.crazygamingcrew.spacequadrat.de/spinstaller/changelog.rar"HotKeySet("{END}", "_exit")
[/autoit] [autoit][/autoit] [autoit]
$INI = @ScriptDir & "\Data.ini"$vVersion = "3.15b"
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$vGUIColor = 0x161616
$vGUIColor2 = 0x161616
Dim $hGUIListChangelogIf Not FileExists(@ScriptDir & "\Data\") Then
[/autoit] [autoit][/autoit] [autoit]
DirCreate(@ScriptDir & "\Data\")
EndIfIf Not FileExists($INI) Then
[/autoit] [autoit][/autoit] [autoit]
IniWrite($INI, "Default", "Titel", "(C) The-Franky 2009 - 2010")
EndIf#region UpdateGUI
[/autoit] [autoit][/autoit] [autoit]
;UpdateGUI
$vGUIStandartHeight = 290
$vGUILargeHeight = $vGUIStandartHeight + 327
$vGUIStandartWidth = 778
$vGUIColor = 0x161616 ;Label of BigMap needs to be changed manually (GUIFuncs.au3, Function: _SM_WritePicLabel + _SM_WorldMapExtras), also Background of Minimap (GUIFuncs.au3, Function: _SM_UnsetMiniMap)
$hGUI = GUICreate("Tralala v" & $vVersion, $vGUIStandartWidth - 6, $vGUIStandartHeight)
$hGUIUpdate = GUICreate("Tralala - Update", 500, 305, -1, -1, -1, 0x00000080, $hGUI)
GUISetBkColor($vGUIColor, $hGUIUpdate)$hGUILabelNewVersion = GUICtrlCreateLabel("", 10, 10, 480, 17)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetColor(-1, 0xFFFFFF)
$hGUIListChangelog = GUICtrlCreateList("", 10, 30, 480, 240, BitOR(0x4000, 0x0100, 0x00200000))
GUICtrlSetBkColor(-1, $vGUIColor)
GUICtrlSetColor(-1, 0xFFFFFF)$hGUIButtonDownload = GUICtrlCreateButton("Download", 10, 275, 235, 20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$hGUIButtonCancelUpdate = GUICtrlCreateButton("Cancel", 255, 275, 235, 20)
GUISetState(@SW_HIDE)
#endregion UpdateGUI
MainGui()
Func MainGui()
Opt("GUIOnEventMode", 0)$maingui = GUICreate("Main Gui", 260, 175, -1, -1)
[/autoit] [autoit][/autoit] [autoit]
$hGUILabelUpdateAndSApfelInfo = GUICtrlCreateLabel("", 25, 14, 84, 17)
GUICtrlSetColor(-1, 0x00FF00)
GUICtrlSetState(-1, 32)
GUICtrlCreateLabel("Test2", 53, 38, 55, 17)
$check = GUICtrlCreateButton("Check", 10, 88, 240, 20)
$groupgeneral2 = GUICtrlCreateGroup("Info", 10, 113, 240, 42)
$Label1 = GUICtrlCreateLabel("Made by" & "Franky", 24, 128, 205, 19)
GUICtrlCreateGroup("", -99, -99, 1, 1)GUISetState(@SW_SHOW, $maingui)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
Switch GUIGetMsg($maingui)
Case -3
ExitCase $check
[/autoit] [autoit][/autoit] [autoit]
_SM_ClickUpdateCheck()Case $hGUIButtonDownload
[/autoit] [autoit][/autoit] [autoit]
_SM_ClickButtonDownload()
Case $hGUIButtonCancelUpdate, $hGUIUpdate
_SM_ClickButtonCancelUpdate()EndSwitch
[/autoit] [autoit][/autoit] [autoit]
Sleep(10)
WEndGUIDelete($maingui)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Sleep(100)EndFunc ;==>MainGui
[/autoit] [autoit][/autoit] [autoit]Func _exit()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Sleep(10)
Exit
EndFunc ;==>_exitFunc _SM_ClickUpdateCheck()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;GUICtrlSetData($hGUILabelUpdateAndSApfelInfo, "Receiving latest SApfel Manager-Version from http://" & $vUpdateServer)
;GUICtrlSetState($hGUILabelUpdateAndSApfelInfo, 16)
_SM_UpdateCheck($vVersion)
If @error = 1 Then
MsgBox(48, "Connection timeout", "You either do not have a connection to the world wide web or the server is currently down.")
ElseIf @error = 2 Then
MsgBox(48, "Error", "Error getting the version!")
ElseIf @error = 3 Then
MsgBox(64, "No update available", "You are using the latest version (v" & $vVersion & ").")
Else
;~ GUISetState(@SW_HIDE, $FORM1)
GUISetState(@SW_SHOW, $hGUIUpdate) ;5
EndIf
;GUICtrlSetState($hGUILabelUpdateAndSApfelInfo, 32)
EndFunc ;==>_SM_ClickUpdateCheckFunc _SM_UpdateCheck($vCurrentVersion)
[/autoit] [autoit][/autoit] [autoit]
If Ping($vUpdateServer) = 0 Then
SetError(1)
Else
$vLatestVersion = _INetGetSource_($vScriptFile)
If @error Then
SetError(2)
Else
If $vCurrentVersion <> $vLatestVersion Then
GUICtrlSetData($hGUILabelNewVersion, "There is a new version available (old: " & $vCurrentVersion & " | new: " & $vLatestVersion & ").")
$vChangelog = StringSplit(_INetGetSource_($vChangelogFile), @CRLF)
For $i = 1 To $vChangelog[0]
GUICtrlSendMsg($hGUIListChangelog, 0x0180, 0, $vChangelog[$i])
Next
Return SetError(0, 0, $vLatestVersion)
Else
SetError(3)
EndIf
EndIf
EndIf
Return 0
EndFunc ;==>_SM_UpdateCheckFunc _INetGetSource_($s_URL, $bString = True)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Local $sString = InetRead($s_URL, 1)
Local $nError = @error, $nExtended = @extended
If $bString Then $sString = BinaryToString($sString)
Return SetError($nError, $nExtended, $sString)
EndFunc ;==>_INetGetSource_Func _SM_ClickButtonDownload()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_HIDE, $hGUIUpdate)
GUICtrlSetData($hGUIListChangelog, "")
;~ ShellExecute("http://" & $vUpdateServer)
_SM_MapFilesInstall()
EndFunc ;==>_SM_ClickButtonDownloadFunc _SM_ClickButtonCancelUpdate()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_HIDE, $hGUIUpdate)
;GUISetState(@SW_SHOW, $maingui)
GUICtrlSetData($hGUIListChangelog, "")
EndFunc ;==>_SM_ClickButtonCancelUpdateFunc _SM_MapFilesInstall()
[/autoit] [autoit][/autoit] [autoit]
$v_MapFiles = @TempDir & "\changelog.rar"ProgressOn("Downloading...", "Loading 'unrar.dll'", "")
[/autoit] [autoit][/autoit] [autoit]$v_SizeUnrarDLL = Round(InetGetSize($vUnrarDLL) / 1024)
[/autoit] [autoit][/autoit] [autoit]
$hDownload = InetGet($vUnrarDLL, @TempDir & "\unrar.dll", 1, 1)
Do
$v_DLBytes = Round(InetGetInfo($hDownload, 0) / 1024)
$v_DLPercent = Round($v_DLBytes / $v_SizeUnrarDLL * 100)
ProgressSet($v_DLPercent, @LF & $v_DLBytes & "/" & $v_SizeUnrarDLL & "KB " & $v_DLPercent & "%")
Sleep(100)
Until InetGetInfo($hDownload, 2)ProgressSet(0, "", "Loading 'changelog.rar'")
[/autoit] [autoit][/autoit] [autoit]$v_SizeMapFilesRar = Round(InetGetSize($vMapFiles) / 1024)
[/autoit] [autoit][/autoit] [autoit]
Local $hDownload = InetGet($vMapFiles, $v_MapFiles, 1, 1)
Do
$v_DLBytes = Round(InetGetInfo($hDownload, 0) / 1024)
$v_DLPercent = Round($v_DLBytes / $v_SizeMapFilesRar * 100)
ProgressSet($v_DLPercent, @LF & $v_DLBytes & "/" & $v_SizeMapFilesRar & "KB " & $v_DLPercent & "%")
Sleep(200)
Until InetGetInfo($hDownload, 2)ProgressSet(100, @LF & "This may take some seconds.", "Installing changelog...")
[/autoit] [autoit][/autoit] [autoit]
$bExtractionSuc = _SM_RARExtract(@TempDir & "\unrar.dll", $v_MapFiles)Sleep(2000)
[/autoit] [autoit][/autoit] [autoit]FileDelete(@TempDir & "\unrar.dll")
[/autoit] [autoit][/autoit] [autoit]
FileDelete($v_MapFiles)If $bExtractionSuc = 1 Then
[/autoit] [autoit][/autoit] [autoit]
ProgressSet(100, @LF & "Installation done. Have fun!", "Installing changelog...")
Sleep(3000)
Else
For $i = 15 To 1 Step - 1
ProgressSet(100, "Error occured. Please make sure that you are connected" & @CRLF & "to the www and that SBot Manager was started in" & @CRLF & "32 bit mode. Continuing in " & $i & " seconds", "Installing mapfiles...")
Sleep(1000)
Next
EndIfProgressOff()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_SM_MapFilesInstall;Auto extraction of rar archives into the scriptdirectory
[/autoit] [autoit][/autoit] [autoit]
Func _SM_RARExtract($v_UnrarDLL, $v_RarFile) ;$v_UnrarDLL = path to unrar.dll file, $v_RarFile = path to rar file
Local $sResult$rar_ArchivName = DllStructCreate("char[260]")
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($rar_ArchivName, 1, $v_RarFile)$rar_CmtBuf = DllStructCreate("char[16384]")
[/autoit] [autoit][/autoit] [autoit]
For $iCount = 1 To 16384
$sResult &= " "
Next
DllStructSetData($rar_CmtBuf, 1, $sResult)$rar_Str = DllStructCreate("ptr;uint;uint;ptr;uint;uint;uint")
[/autoit] [autoit][/autoit] [autoit]DllStructSetData($rar_Str, 1, DllStructGetPtr($rar_ArchivName))
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($rar_Str, 2, 1) ;1 = $RAR_OM_EXTRACT
DllStructSetData($rar_Str, 3, 0)
DllStructSetData($rar_Str, 4, DllStructGetPtr($rar_CmtBuf))
DllStructSetData($rar_Str, 5, 16384)
DllStructSetData($rar_Str, 6, 0)
DllStructSetData($rar_Str, 7, 0)
$rar_Header_CmtBuf = DllStructCreate("char[16384]")$rar_Header_Str = DllStructCreate("char[260];char[260];uint;uint;uint;uint;uint;uint;uint;uint;uint;ptr;uint;uint;uint")
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($rar_Header_Str, 12, DllStructGetPtr($rar_Header_CmtBuf))If FileExists($v_UnrarDLL) Then
[/autoit] [autoit][/autoit] [autoit]
$DLLUnrar = DllOpen($v_UnrarDLL)
$rar_OpenedArchive = DllCall($DLLUnrar, "int", "RAROpenArchive", "ptr", DllStructGetPtr($rar_Str))If IsArray($rar_OpenedArchive) Then
[/autoit] [autoit][/autoit] [autoit]
$iCount = 0
Do
$rar_Header = DllCall($DLLUnrar, "int", "RARReadHeader", "ptr", $rar_OpenedArchive[0], "ptr", DllStructGetPtr($rar_Header_Str))
DllCall($DLLUnrar, "int", "RARProcessFile", "ptr", $rar_OpenedArchive[0], "int_ptr", 2, "ptr", "", "ptr", "") ;2 = $RAR_EXTRACT
$iCount += 1
Until $rar_Header[0] <> 0 Or $iCount = 20DllCall($DLLUnrar, "int", "RARCloseArchive", "int", $rar_OpenedArchive[0])
[/autoit]
DllClose($DLLUnrar)
Return 1
EndIf
EndIf
Return 0
EndFunc ;==>_SM_RARExtractkönnt das Script auch Live testen so wie es is ;P
würde mich über eure Hilfe freuen
Mit freundlichen Grüßen
LatroX
-
Es funktioniert !!!
Ich danke euch vielmals -
/push
keiner hier der mir helfen könnte?