Beiträge von timyboy

    Gibt es schon ein Script, welches automatisch erkennen kann, um welches Format es sich bei einer heruntergelandenen Datei handelt und diese bei gepackten zustand entpackt. eventl. noch alle möglichen varianten enthält, zum starten (bei .exe = Run,...) ?


    #include <GUIConstantsEx.au3>#include <WindowsConstants.au3>#include <SliderConstants.au3>#include <GuiSlider.au3>#include <WebTCP.au3>#include <INet.au3>#Include <GuiSlider.au3>#Include <Timers.au3>#include <EditConstants.au3>#include <StaticConstants.au3>#include <ListviewConstants.au3>#include <ProgressConstants.au3>#include <GUIConstantsEx.au3>
    Opt('MustDeclareVars', 1)
    Local $GUI, $BGimage, $label1, $labe2, $progress1, $button3, $nMsg, $click, $msg


    $GUI = GUICreate("Fritz!Box Reconnect",400,150,-1,-1,-1,-1)GUISetBkColor(0x8080FF,$GUI)$BGimage = GUICtrlCreatePic("\fritzbox.jpg",0,0,400,150)GuiCtrlSetState(-1,$GUI_DISABLE)


    $label1 = GUICtrlCreateLabel("Fritz!Box Reconnect",115,8,260,30,-1,-1)GUICtrlSetFont(-1,18,700,default,"MV Boli")GUICtrlSetColor(-1,"0x800000")GUICtrlSetBkColor(-1,"-2")$labe2 = GUICtrlCreateLabel("IP / HOST: http://fritz.box",175,45,210,13,-1,-1)GUICtrlSetFont(-1,12,400,default,"Twelve Ton Fishstick")GUICtrlSetBkColor(-1,"-2")$progress1 = GUICtrlCreateProgress(12,129,375,12,-1,131232)GUICtrlSetBkColor(-1,"-2")$button3 = GUICtrlCreateButton("Start",220,77,135,45,-1,-1)GUICtrlSetOnEvent(-36, "StartPressed")GUICtrlSetFont(-1,10,400,default,"discotech")GUICtrlSetImage(-1,"\Reconnect3G.ico")GUISetState(@SW_SHOW,$GUI)


    While 1$nMsg = GUIGetMsg()Switch $nMsgCase -3 ExitLoop Exit
    If $click Then=True Start("$install")



    Case $GUI_EVENT_CLOSEEndSwitchWEnd
    Func StartPressed($click)
    Sleep(500) WinWait("Fritz!Box Reconnect", "Start") WinActivate("Fritz!Box Reconnect", "Start") ControlClick("Fritz!Box Reconnect", "Start", "[CLASS:Button; INSTANCE:1]")Endfunc
    Func Installation($install)
    #include <WebTCP.au3> Sleep(500)_WebTcp_Startup()$oWebTCP = _WebTcp_Create()
    $sIP = _GetIP()
    $sPacket = '<?xml version="1.0" encoding="utf-8"?>' & @CRLF & _ '<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">' & @CRLF & _ ' <s:Body>' & @CRLF & _ ' <u:ForceTermination xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" />' & @CRLF & _ ' </s:Body>' & @CRLF & _ '</s:Envelope>'
    $oWebTCP.Navigate('http://fritz.box:49000/upnp/control/WANIPConn1', $sPacket, "text/xml", 49000, False, 'SOAPACTION: urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination')
    ConsoleWrite($sIP & @CRLF)ConsoleWrite(_GetIP())
    Endfunc





    Ich habe mir eine GUI erstellt, wo ein Button enthalten ist.


    Jetzt weis ich nicht weiter, denn ich habe 2 funktionen erstellt, wobei die 1. der klick auf den button ist und die 2. die ausführung vom eigentlichen tool.
    ich will hierbei eine progressbar (welche in der GUI eingebunden ist - nur mit balken) starten lassen und wenn das programm zu ende ist, soll alles enden...


    messageboxen habe ich nicht verwendet...


    lg

    Ich suche einen AutoUpdater (leider nicht hier gefunden was ich will), der folgendes kann:


    - bei der 1. installation soll direkt nach einem Update gesucht werden , falls da = neue daten in eine ini schreiben und sich selbst aktuallisieren (install wird von mir vorgenommen)


    -es soll bei jedem programmaufruf gesucht werden, spätestens nach 7 tagen nach der installation


    - es soll bei 3-4 softwareanbietern gesucht werden (filehippo, sourceforge,softpedia,download.com, wobei hier geschaut werden soll, wer das neueste update hat, bei gleichen updates, nehme den ersten


    - mit progressbalken, prozentangabe, zeit, verbl. zeit, datenmenge


    das wäre es... ich bin leider noch ein neuling und habe schon ein bissel was versucht aber, klaglich gescheitert... sicherlich gibt es profis, welche das in 5 minuten erledigen können, ich bin gespannt..

    Wer kann mir das vbs script in au3 übersetzen?


    Code
    'fb_reconnect.vbs (c) 2009 by Michael Engelke <http://www.mengelke.de>
    On Error Resume Next
    host = InputBox("Bitte die Adresse der Fritz!Box eingeben!" & vbcrlf & vbcrlf & "Alternativ-Adressen:" & vbcrlf & "192.168.178.1 oder 169.254.1.1", _ "FB-Reconnect (c) 2009 by Michael Engelke","fritz.box")
    If host = False Then WScript.QuitEnd IfSet http = NothingSet http = CreateObject("WinHttp.WinHttpRequest.5.1")If http Is Nothing Then Set http = CreateObject("WinHttp.WinHttpRequest.5")If http Is Nothing Then Set http = CreateObject("WinHttp.WinHttpRequest")If http Is Nothing Then Set http = CreateObject("MSXML2.ServerXMLHTTP")If http Is Nothing Then Set http = CreateObject("Microsoft.XMLHTTP")If http Is Nothing Then MsgBox "Kein HTTP-Objekt verfügbar!",16,"Fehler:"Else'On Error Goto 0 body = "<?xml version=""1.0"" encoding=""utf-8""?>" _ & "<s:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/"" s:encodingStyle=""http://schemas.xmlsoap.org/soap/encoding/"">" _ & "<s:Body><u:ForceTermination xmlns:u=""urn:schemas-upnp-org:service:WANIPConnection:1"" /></s:Body>" _ & "</s:Envelope>" With http .Open "POST", "http://" & host & ":49000/upnp/control/WANIPConn1",false .setRequestHeader "Content-Type", "text/xml; charset=""utf-8""" .setRequestHeader "Connection", "close" .setRequestHeader "Content-Length", Len(body) .setRequestHeader "HOST", host & ":49000" .setRequestHeader "SOAPACTION", """urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination""" .Send body End WithEnd If

    Ich habe ein gutes UpdatesScript gefunden, was bei FileHippo nach dem passendem Update schaut. Nur leider ist mir das Angebot etwas mager... deshalb wollte ich fragen, was man am Script umstellen muss , damit das Script sich auf softpedia.com umschaut + updatet?




    #include-once
    #include <array.au3>


    Func _FileHippoDownload($sProgramTitle, $sDownloadFolder, $sDownloadFileName = "", $bDownload = True, $bSkipBeta = True, $FunctionToCall = "")
    Local $DownloadUrl, $asDownloadUrl
    Local $sCurrentVersion, $asCurrentVersion
    Local $sBaseSite = 'http://filehippo.com'
    Local $sBaseFolder = '/download_' & $sProgramTitle & '/'
    Local $sVersionFolder = "" ; for Beta rejection



    ;String trailing slash "\"
    If StringRight($sDownloadFolder, 1) = "\" Then StringLeft($sDownloadFolder, StringLen($sDownloadFolder) - 1)
    If DirCreate($sDownloadFolder) = 0 Then Return SetError(6, 0, "") ; destination unreachable


    ;Get source for program page
    Local $sPageSource = _GetSourceCode($sBaseSite & $sBaseFolder)
    If @error Then
    ;Failed to get programs page
    Return SetError(1, 0, "")
    EndIf
    ;Latest Version<br/><b>Malwarebytes Anti-Malware 1.51.1</b><br/><br/>Old Versions
    $asCurrentVersion = StringRegExp($sPageSource, '(?s)(?i)Latest Version<br(.*?)</b><br/><br/>Old Versions', 3)
    If @error Then
    Return SetError(2, 0, "")
    EndIf
    $sCurrentVersion = StringMid($asCurrentVersion[0], StringInStr($asCurrentVersion[0], " ", 0, -1) + 1)


    ;Check for BETA copy rejection
    If $bSkipBeta And StringInStr($asCurrentVersion[0], "beta") <> 0 Then
    ;Get table of old versions
    $asCurrentVersion = StringRegExp($sPageSource, '(?s)(?i)>Old Versions<(.*?)download_opera/history/', 3)
    If @error Then
    Return SetError(2, 0, "")
    EndIf


    ; Break table into array
    $asCurrentVersion = StringRegExp($asCurrentVersion[0], '(?s)(?i)<a href="/download_opera/(.*?)/">(.*?)</a>', 3)
    If @error Then
    Return SetError(2, 0, "")
    EndIf


    ;search array for NON beta version
    For $iItem = 1 To UBound($asCurrentVersion) - 1 Step 2
    If StringInStr($asCurrentVersion[$iItem], "beta") = 0 Then
    $sVersionFolder = $asCurrentVersion[$iItem - 1] & "/"
    $sCurrentVersion = StringMid($asCurrentVersion[$iItem], StringInStr($asCurrentVersion[$iItem], " ", 0, -1) + 1)
    ExitLoop
    EndIf
    Next


    If $sVersionFolder = "" Then
    ;NO NON BETA version available
    Return SetError(9, 0, "")
    Else
    ;Found non beta


    ;Get source for non beta program page
    Local $sPageSource = _GetSourceCode($sBaseSite & $sBaseFolder & $sVersionFolder)
    If @error Then
    ;Failed to get programs page
    Return SetError(1, 0, "")
    EndIf
    EndIf
    EndIf


    ;Get download URL
    $asDownloadUrl = StringRegExp($sPageSource, '(?s)(?i)<a href="' & $sBaseFolder & 'download/(.*?)/">', 3)
    If @error Then
    Return SetError(2, 0, "")
    EndIf
    $_DownloadUrl1 = $asDownloadUrl[0]


    ;Get source for details page
    Local $sPageSource = _GetSourceCode($sBaseSite & $sBaseFolder & 'tech/')
    If @error Then
    ;Failed to get programs page
    Return SetError(1, 0, "")
    EndIf


    ;Get Details/description Table
    ;$asDescTable = StringRegExp($sPageSource, '(?s)(?i)<div class="desc">.*?<table>(.*?)</table>', 3)
    $asDescTable = StringRegExp($sPageSource, '(?s)(?i)<div id="txt">.*?<table>(.*?)</table>', 3)
    If @error Then
    Return SetError(2, 0, "")
    EndIf
    $sDescTable = $asDescTable[0]


    ;Split up table
    $asDescTable = StringRegExp($sDescTable, '(?s)(?i)<tr><td><b>(.*?):</b></td><td>(.*?)</td></tr>', 3)
    If @error Then
    Return SetError(2, 0, "")
    EndIf


    ;Convert to 2D array
    Dim $_FileDetails[UBound($asDescTable) / 2 + 2][2]
    $_FileDetails[0][0] = UBound($asDescTable) / 2 ; number of rows in array
    $_FileDetails[2][0] = $asDescTable[0]
    $_FileDetails[2][1] = $asDescTable[1]
    For $item = 2 To UBound($asDescTable) - 1 Step 2
    $_FileDetails[$item / 2 + 2][0] = $asDescTable[$item]
    $_FileDetails[$item / 2 + 2][1] = $asDescTable[$item + 1]
    Next


    ;Cleanup Author
    Local $iIndex = _ArraySearch($_FileDetails, "Author")
    If Not @error Then
    $_FileDetails[$iIndex][1] = StringLeft($_FileDetails[$iIndex][1], StringInStr($_FileDetails[$iIndex][1], "<") - 1)
    EndIf


    ;Cleanup HomePage
    $iIndex = _ArraySearch($_FileDetails, "HomePage")
    If Not @error Then
    $_FileDetails[$iIndex][1] = StringMid($_FileDetails[$iIndex][1], StringInStr($_FileDetails[$iIndex][1], "href=") + 6)
    $_FileDetails[$iIndex][1] = StringMid($_FileDetails[$iIndex][1], 1, StringInStr($_FileDetails[$iIndex][1], '"') - 1)
    EndIf


    $_FileDetails[1][0] = "Latest Version"
    $_FileDetails[1][1] = $sCurrentVersion


    If $bDownload Then
    ;<a href="/download_opera/download/f9c81a8e689661f472f47aa7a0b12ada/"><img src="http://cache.filehippo.com/img/down5.png" alt="Download"/></a>
    ;Get source for download page
    $sPageSource = _GetSourceCode($sBaseSite & $sBaseFolder & 'download/' & $_DownloadUrl1) ; downlaod page
    If @error Then
    ;Failed to get programs page
    Return SetError(3, 0, "")
    EndIf
    ;<a id="_ctl0_contentMain_lnkURL" class="black" href="/download/file/de709ff1117ec419609d7fceecd86e625fe523b1385fa00515aa824249206a40/">If not then please click this link</a>
    $asDownloadUrl = StringRegExp($sPageSource, '(?s)(?i)href="/download/file/(.*?)/">', 3)
    If @error Then
    Return SetError(4, 0, "")
    EndIf
    $DownloadUrl = "/download/file/" & $asDownloadUrl[0] & "/"


    If $sDownloadFileName = "" Then
    ;Use FileHippo filename
    $sDownloadFileName = $_FileDetails[_ArraySearch($_FileDetails, "Filename")][1]
    EndIf


    ; DOWNLOAD FILE
    Local $iFileSize = InetGetSize($sBaseSite & $DownloadUrl, 1)
    Local $DownloadedSoFar = 0 ; howmany bytes of the file have been downloaded
    Local $bRtn = True ; Progress function return OK
    Local $hDownload = InetGet($sBaseSite & $DownloadUrl, $sDownloadFolder & "\" & $sDownloadFileName, 1, 1)
    Do
    If $FunctionToCall <> "" Then
    $bRtn = Call($FunctionToCall, Floor((InetGetInfo($hDownload, 0) / $iFileSize) * 100))
    If @error Then
    InetClose($hDownload) ; Close the handle to release resourcs.
    Return SetError(8, 0, "")
    EndIf
    EndIf
    Sleep(250)
    Until InetGetInfo($hDownload, 2) Or $bRtn = False ; Check if the download is complete.
    Local $nBytes = InetGetInfo($hDownload, 0)
    InetClose($hDownload) ; Close the handle to release resourcs.
    If @error Then
    Return SetError(5, 0, "")
    EndIf
    If $bRtn = False Then
    ;Download aborted by $FunctionToCall
    Return SetError(7, 0, "")
    EndIf
    EndIf
    Return $_FileDetails
    EndFunc ;==>_FileHippoDownload


    Func _GetSourceCode($_Url)
    Local $_InetRead = InetRead($_Url)
    If Not @error Then
    Local $_BinaryToString = BinaryToString($_InetRead)
    If Not @error Then Return $_BinaryToString
    EndIf
    EndFunc ;==>_GetSourceCode



    ProgressOn("FileHippo Download", "Downloading : opera")
    $test = _FileHippoDownload("opera", @ScriptDir & "\", "install_opera.exe", True, True, "_UpdateProgress")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $test = ' & $test & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    ProgressOff()
    Run("$test")
    Exit
    #include <Misc.au3>
    Func _UpdateProgress($Percentage)
    ProgressSet($Percentage, $Percentage & "%")
    If _IsPressed("77") Then Return False ; Abort on F8
    Return True ; bei 1 Fortsetzten
    EndFunc ;==>_UpdateProgress


    Ich muss leider einmal eine Frage zu einer/zwei Progressbaren stellen.


    Da ich für meine Softwareinstallationen gerne eine grafische Fortschrittsangabe einbinden wollte, wäre ja eine Progressbar optimal... Im Forum konnte ich auch schon mehrere Scripte entdecken, nur leider weiss ich nicht wie und wo ich die Softwareinstallationen dazwischen einbinden muss, damit alles funktioniert...


    Daher wäre es nett, wenn sich jemand erbarmen könnte und mir dies anhand eines Beispielscriptes (komplett bitte) zeigen könnte.


    Danke.