1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. autoBert

Beiträge von autoBert

  • dvd video als pixel in variable geben und danach wieder zusammenfügen und als Video speichern

    • autoBert
    • 24. Januar 2012 um 16:41
    Zitat von AutoItfreak

    wie spiel ich überhaupt eine geschützte dvd ab


    wie jede andere auch, sie ist ja nicht gegen abspielen geschützt sndern nur gegen das kopieren.

  • _Ftp_FilePut Problem ...

    • autoBert
    • 24. Januar 2012 um 14:06

    HalloJulien,

    dein Fehler beim _FilePut-Versuch ist sicherlich (Skript nurüberflgen) das vergessen die gerade geschriebene Datei zu schliessen,

    mfg autoBert

  • Laufende Funktion beenden

    • autoBert
    • 24. Januar 2012 um 13:42
    Zitat von geradeStudent

    Hallo.

    Ich will eine laufende Funktion durch einen Tastendruck beenden.
    Meine Idee war Return.. aber das klappte nicht.

    HIer mein Programm:

    Spoiler anzeigen
    [autoit]

    HotKeySet("{ESC}", "Terminate")

    [/autoit] [autoit][/autoit] [autoit]

    Func Terminate()
    Return
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func 2teFunktion()
    MouseClick("left",$x1,$y3,1,$s)
    MouseClick("left",$x2,$y3,1,$s)
    EndFunc

    [/autoit]

    [

    Die Idee ist, dass die 2teFunktion einfach gestoppt wird wenn ich ESC drücke.

    Alles anzeigen

    Stell dein richtiges Skript ein, denn bei diesem beendet sich die Funktion nach den 2 Mausklicks von alleine. Noch besser ist du nennst das Porg das du automatisieren willst, denn meist gibt es bessere Möglichkeiten als Mausschubser- und -klickerei,

    mfg autoBert

  • Autoit Fehler @Error bei _StringEncrypt?

    • autoBert
    • 23. Januar 2012 um 12:00

    chip: das ist mir bewust:

    Zitat von autoBert
    [autoit]

    $Encrypt = _StringEncrypt(0, $String, "acas")
    If @error Then
    MsgBox(0, "Fehler:", @error)
    Else
    MsgBox(64, "Text", $Encrypt)
    ;dass ein Text ausgegeben wird ist normal, da die Routine ja keinen ausgelöst hat
    ;das er allerdings falsch ist liegt an dem falschen Passwrt
    EndIf

    [/autoit]
    Alles anzeigen
  • Autoit Fehler @Error bei _StringEncrypt?

    • autoBert
    • 23. Januar 2012 um 06:08

    Hallo Julien,

    um den krrekt entschlüsselten String zu erhalten musst du auch das korrekte Passwrt verwenden:

    Spoiler anzeigen
    [autoit]

    #include <String.au3>
    $String = _StringEncrypt(1, "Ou man du", "c")
    $Encrypt = _StringEncrypt(0, $String, "c")
    If @error Then
    MsgBox(0, "Fehler:", @error)
    Else
    MsgBox(64, "Text", $Encrypt)
    EndIf
    $Encrypt = _StringEncrypt(0, $String, "acas")
    If @error Then
    MsgBox(0, "Fehler:", @error)
    Else
    MsgBox(64, "Text", $Encrypt)
    ;dass ein Text ausgegeben wird ist normal, da die Routine ja keinen ausgelöst hat
    ;das er allerdings falsch ist liegt an dem falschen Passwrt
    EndIf

    [/autoit]

    mfg autoBert

  • Webspace mit InetGet Ordner downlaoden + Inhalt?

    • autoBert
    • 23. Januar 2012 um 05:57

    Hallo Julien,

    tausche deine Zeile 51 gegen

    [autoit]

    $aLoaclPath = StringSplit($aLines[$i],"/")
    for $j = 1 to $aLoaclPath[0]-1
    if Not FileExists($aLoaclPath[$j]) Then DirCreate($aLoaclPath[$j]) ;Lokal benötigte Ordner anlegen
    Next
    $GetData = InetGet($aFiles[$i][0], @ScriptDir & "\" & StringReplace($aLines[$i],"/","\"), 1, 1) ;im Hintergrund

    [/autoit]

    die Pfadangabe für die jeweilige lokale Datei war falsch, es müssen ja erst noch die Ordner angelegt werden. Ausserdem hattest du vergessen/herauseditiert einen "\" einzufügen.

    Da deine Dateien so gross und mein INet so langsam ist habe ich es nicht komplett durchgetestet. Da aber das Array nach dem Ermitteln der Gesamtgrösse für alle 3 Dateien einen Wert angezeigt hat, sollten jetzt auch alle 3 Dateien heruntergeladen werden können,

    mfg autoBert

  • .Ini vollständig in ein Array lesen

    • autoBert
    • 22. Januar 2012 um 22:03

    Hallo BigldDad,

    ich würde daraus ein 2D-Array erzeugen:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $aDB[2][2]

    [/autoit] [autoit][/autoit] [autoit]

    $sIni = @ScriptDir & "\db.ini"
    $aSections = IniReadSectionNames($sIni)

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To $aSections[0]
    $aSection = IniReadSection($sIni, $aSections[$i])
    ;_ArrayDisplay($aSection)
    If $i = 1 Then
    ReDim $aDB[$aSections[0] + 1][$aSection[0][0] + 1] ;2DArray dimensionieren
    For $j = 1 To $aSection[0][0] ;Spaltenüberschrifeten eintragen
    $aDB[0][$j] = $aSection[$j][0]
    Next
    $aDB[0][0] = $aSections[0]& " / Sectionname" ;Anzahl der Zeilen
    EndIf
    For $j = 1 To $aSection[0][0]
    $aDB[$i][$j] = $aSection[$j][1]
    Next
    $aDB[$i][0] = $aSections[$i]
    Next

    [/autoit] [autoit][/autoit] [autoit]

    _ArrayDisplay($aDB)

    [/autoit]

    und mit diesem weiterarbeiten,

    mfg autoBert

  • Fadenkreuz dauerhaft erhalten

    • autoBert
    • 22. Januar 2012 um 20:37
    Zitat von Gamecard

    Genau das wollte ich in Spiele verwenden :(....als ziel Hilfe schade...
    aber es muss doch irgend wie möglich sein


    Dann solltest du dir die Forenregeln durchlesen,

    mfg autoBert

  • Datenfiles editieren

    • autoBert
    • 22. Januar 2012 um 17:55

    Hallo entsel,

    warum liest du nicht mit

    [autoit]

    _FileRadToArray

    [/autoit]

    alles in ein Array, manipulierst dann dort die Daten und schreibst das ganze mit

    [autoit]

    _FileWriteFromArray

    [/autoit]

    wieder in eine Datei,

    mfg autoBert

  • Fadenkreuz dauerhaft erhalten

    • autoBert
    • 22. Januar 2012 um 17:29
    Zitat von Gamecard

    Funktioniert das auch für Fenster Modus Anwendungen ?


    Es funktiniert für alle Anwendungen die WinApi-Routinen nutzen und nicht selbstständig an Windws vorbei direkt die Grafikkarte ansprechen. Für Spiele ist es also eher nicht geeignet,

    mfg autoBert

  • Fadenkreuz dauerhaft erhalten

    • autoBert
    • 22. Januar 2012 um 02:35

    Das Skript von BugFix läuft man muss nur die Adlibfunktionen auf die neuen umstellen. Wenn man dann noch zusätzlich 1 Zeile auskommentiert und eine bereits vorhandene an eine 2. Stelle kopiert, läuft es auch bei Vollbildanwendungen, die Scrollbalken haben ohne dass das Fadenkreuz durch Scrollen mehrfach erscheint

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <WindowsConstants.au3>
    #include <WinAPI.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $hDC, $hPen, $obj_orig
    Global $active, $lastActive = 0
    HotKeySet("!e", '_ende')

    [/autoit] [autoit][/autoit] [autoit]

    AdlibRegister('_SetCrossToActive',500)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _SetCrossToActive()
    $active = WinGetHandle('[ACTIVE]')
    ;If $lastActive = $active Then Return
    ;$lastActive = $active
    _WinAPI_RedrawWindow(_WinAPI_GetDesktopWindow(), 0, 0, BitOR($RDW_INVALIDATE,$RDW_ALLCHILDREN))
    $hDC = _WinAPI_GetWindowDC($active)
    ShowCross($hDC, @DesktopWidth / 2, @DesktopHeight / 2, 20, 2, 0xFF)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func ShowCross($hDC, $start_x, $start_y, $length, $width, $color)
    $hPen = _WinAPI_CreatePen($PS_SOLID, $width, $color)
    $obj_orig = _WinAPI_SelectObject($hDC, $hPen)
    _WinAPI_DrawLine($hDC, $start_x - $length, $start_y, $start_x - 5, $start_y) ; horizontal left
    _WinAPI_DrawLine($hDC, $start_x + $length, $start_y, $start_x + 5, $start_y) ; horizontal right
    _WinAPI_DrawLine($hDC, $start_x, $start_y - $length, $start_x, $start_y - 5) ; vertical up
    ; _WinAPI_DrawLine($hDC, $start_x, $start_y + $length, $start_x, $start_y + 5) ; vertical down
    _WinAPI_MoveTo($hDC, $start_x, $start_y + $length)
    _WinAPI_LineTo($hDC, $start_x, $start_y + 5)
    EndFunc ;==>ShowCross

    [/autoit] [autoit][/autoit] [autoit]

    Func _ende()
    AdlibUnRegister('_SetCrossToActive')
    _WinAPI_RedrawWindow(_WinAPI_GetDesktopWindow(), 0, 0, BitOR($RDW_INVALIDATE,$RDW_ALLCHILDREN))
    _WinAPI_SelectObject($hDC, $obj_orig)
    _WinAPI_DeleteObject($hPen)
    _WinAPI_ReleaseDC(0, $hDC)
    Exit
    EndFunc

    [/autoit]

    mfg autoBert

  • Form schliessen

    • autoBert
    • 21. Januar 2012 um 20:05

    Hallo Fr34k,

    hier ein Beispiel das den Extended-Modus von GuiGetMsg verwendet:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include<WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $idGui1, $idGui2=-99, $idMsgBox, $idZurueck, $idbtnExit2
    _CreateGui2() ;entweder hier oder erst wenn benötigt ($idbtmToGui2 Klick)

    [/autoit] [autoit][/autoit] [autoit]

    $idGui1 = GUICreate('GUI 1', 400, 280, 140, 150, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX))
    ;erzeugt eine GUI die zurückgebebene ID wird in der Variablen $idGui1 gespeichert
    ;die GUI hat BOXen für Mininmieren, Maximieren und ist in der Größe frei änderbar
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')

    [/autoit] [autoit][/autoit] [autoit]

    $idbtnToGui2 = GUICtrlCreateButton('&Aufruf GUI 2', 20, 20, 100, 21)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    ;verankert den Button "Afruf Gui 2" links und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand

    [/autoit] [autoit][/autoit] [autoit]

    $idbtnICQ = GUICtrlCreateButton('&ICQ', 20, 50, 100, 21)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    ;verankert den Button "ICQ" links und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand

    [/autoit] [autoit][/autoit] [autoit]

    $idbtnExit1 = GUICtrlCreateButton('be&enden', 20, 80, 100, 21)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    ;verankert den Button "Afruf Gui 2" links und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW, $idGui1)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg(1) ;extended Modus wichtig!!
    Switch $nMsg[1] ;für welches Fenster ist die Message
    Case $idGui1 ;ab hier ist Gui 1 dran
    Switch $nMsg[0] ;welche Message wurde ausgelöst
    Case $idbtnToGui2
    ;GUISetState(@SW_Hide, $idGui1) ;Gui 1 verstecken, damit nur Gui2 sichtbar ist und bearbeitet werden kann
    GUISetState(@SW_DISABLE, $idGui1) ;oder Gui 1 disablen, damit nur Gui2 bearbeitet werden kann
    ;If $idGui2 = -99 Then _CreateGui2() ;nur wenn nicht am Anfang bereits erzeugt nötig, dann auf Vorbelegung der Variable in Global achten)
    GUISetState(@SW_SHOW, $idGui2) ;Gui 2 anzeigen
    Case $idbtnICQ
    MsgBox(0,"","Jetzt würde ICQ gestartet",0,$idGui1)
    ;Run("C:\Program Files\ICQ7.0\ICQ.exe")
    Case $idbtnExit1, $GUI_EVENT_CLOSE
    _end()
    EndSwitch
    Case $idGui2 ;ab hier ist Gui 2 dran
    Switch $nMsg[0] ;welche Message wurde ausgelöst
    Case $idMsgBox
    MsgBox(0, 'Test', 'Test', 0, $idGui2)
    Case $idZurueck, $GUI_EVENT_CLOSE
    ;GUISetState(@SW_Show, $idGui1) ;Gui 1 wieder anzeigen
    GUISetState(@SW_ENABLE, $idGui1) ;oder Gui 1 wieder zur Bearbeitung zulsassen
    GUISetState(@SW_HIDE, $idGui2) ;Gui 2 verstecken
    Case $idbtnExit2
    _end()
    EndSwitch
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _CreateGui2()
    $idGui2 = GUICreate('GUI 2', 500, 300, 200, 50, -1, -1, $idGui1) ;wichtig ist der letzte Parameter falls beide gleichzeitig sichtbar sein sollen
    ;erzeugt eine GUI als Child von Gui1, die zurückgebebene ID wird in der Variablen $idGui2 gespeichert

    [/autoit] [autoit][/autoit] [autoit]

    $idMsgBox = GUICtrlCreateButton('&MsgBox', 20, 20, 100, 21)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    ;verankert den Button "MsgBox" links und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand

    [/autoit] [autoit][/autoit] [autoit]

    $idZurueck = GUICtrlCreateButton('&Zurück zu GUI 1', 20, 50, 100, 21)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    ;verankert den Button "zurück" links und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand

    [/autoit] [autoit][/autoit] [autoit]

    $idbtnExit2 = GUICtrlCreateButton('be&enden', 20, 80, 100, 21)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    ;verankert den Button "beenden" links und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
    EndFunc ;==>_CreateGui2

    [/autoit] [autoit][/autoit] [autoit]

    Func _end()
    GUIDelete($idGui2)
    GUIDelete($idGui1)
    Exit
    EndFunc ;==>_end

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    mfg autoBert

  • Patcher, Progress Gesamtdownloadstatus und Einzeldownloadstatus

    • autoBert
    • 21. Januar 2012 um 18:29

    Hallo Julien,

    dein Konzept kann nicht funktionieren:

    • Bei der func _add speciherst du nur die Dateinamen, zum uploaden benötigst du aber den kompletten lkalen Pfad. Die Auswahl einer einzigen Datei funktioniert auch nicht. Wie man bei FilepenDialog zwischen Einfach- und Mehrfachauswahl unterscheiden und beides behandeln kann habe ich in [Beispiel] BMP-, GIF- & JPG-Viewer demonstriert. Desweiteren zeigt dieses Beispiel wie man die Pfade für den Benutzer unsichtbar in einer Listview speichert.
    • Bei der func _addfolder lässt du nur Laufwerk c: zu. Dein Fehler ist $FileList[0] enthält die Anzahl der gefundenen Dateien, anstelle dessen müsstest du "c:\" & $Foldername verwenden. Besser nch du lässt alle LW zu und nimmst den LW-Buchstaben nch mit in Foldername auf.

    mfg autoBert

  • FTP Upload funktioniert nicht

    • autoBert
    • 21. Januar 2012 um 17:09

    Hallo ,

    passe einmal dieses Skript (Benutzerdaten, Dateipfade) auf dich an:

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <FTPEx.au3>
    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    _example1()

    [/autoit] [autoit][/autoit] [autoit]

    #cs
    Beispiel mit externem Progressfenster zur Demostration der Fortschrittsanzeige mit einer Benutzerfunktion
    #ce
    Func _example1()
    Local $s_ServerName = 'autobert.myplace.net' ;dieser Server existiert nicht anpassen
    Local $s_Username = "autobert" ;anpassen
    Local $s_Password = "TopSecret" ;anpassen
    Local $i_Passive = 0 ;aktive Verbindung nutzen wenn bei anderen Server Probleme dann auch mit 1 für passive Verbung testen

    [/autoit] [autoit][/autoit] [autoit]

    Local $s_LocalFile = "C:\test.zip"
    Local $s_RemoteFile = "test.zip"
    Local $s_RemoteDir = "/FTPTestfiles/" ;anpassen
    Local $l_InternetSession, $l_FTPSession
    Local $errOpen, $errFTP

    [/autoit] [autoit][/autoit] [autoit]

    $l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung
    $errOpen = @error
    If Not @error Then
    $l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
    $errFTP = @error
    If Not @error Then
    _FTP_DirSetCurrent($l_FTPSession,$s_RemoteDir)
    ConsoleWrite(_FTP_DirGetCurrent($l_FTPSession) & @CRLF)
    _FTP_ProgressUpload($l_FTPSession, $s_LocalFile, $s_RemoteFile,"_UpdateProgress")
    If @error Then ConsoleWrite("Fehler bei _FTP_ProgressUpload: " & @error & @CRLF)
    Else
    MsgBox(0, "Connect", "fehlgeschalagen")
    ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
    EndIf
    Else
    MsgBox(0, "Open", "fehlgeschalagen")
    ConsoleWrite("Open " & " " & $errOpen & @CRLF)
    EndIf
    _FTP_Close($l_InternetSession)
    EndFunc ;==>_example1

    [/autoit] [autoit][/autoit] [autoit]

    Func _UpdateProgress($i_Percent)
    ProgressSet($i_Percent, $i_Percent & "%")
    If _IsPressed("77") Then Return 0 ; Abbruch bei F8
    Return 1 ; bei 1 Fortsetzten
    EndFunc ;==>_UpdateProgress

    [/autoit]

    in der Scite-Knsole kannst du erkennen w ein evtl. Fehler liegt,

    mfg autoBert

  • Patcher, Progress Gesamtdownloadstatus und Einzeldownloadstatus

    • autoBert
    • 21. Januar 2012 um 14:54

    Hallo Julien,

    • öffne die Datei mit Scite oder mit Wrdpad, da wird sie richtig dargestellt.

    • ist über InetGet nicht möglich, ginge wohl mit FTP, falls du einen FTP-Account einrichten kannst, der in einem bestimmten Bereich nur Leserechte hat ist dies kein Problem. Wenn der Account allerdings Schreibrechte auf deinem Webspace hat kannst du die Idee ganz schnell vergessen, da ansnsten dein Account ganz schnell von jemand Fremden übernommen wird.
      Falls du dich mit FTP beschäftigen willst, schau dir dazu [autoit]
      _FTP_FileOpen
      _FTP_Connect
      _FTP_ListToArray2D
      _FTP_FileGet
      _FTP_Close
      [/autoit]aq.

    mfg autoBert

  • Patcher, Progress Gesamtdownloadstatus und Einzeldownloadstatus

    • autoBert
    • 21. Januar 2012 um 03:36

    Hall Julien,

    ich habe das Skripz nch einmal geändert:

    Spoiler anzeigen
    [autoit]

    #RequireAdmin
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <INet.au3>
    #include <File.au3>
    #include <String.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $aLines, $sMsg, $sMsg2

    [/autoit] [autoit][/autoit] [autoit]

    $GUI = GUICreate("Patcher", 615, 419, 192, 124)
    $GesamtProgress = GUICtrlCreateProgress(8, 312, 590, 25)
    $EinzelProgress = GUICtrlCreateProgress(8, 376, 590, 25)
    $ButtonPatchen = GUICtrlCreateButton("Patchen", 520, 16, 75, 25)
    $ButtonBeenden = GUICtrlCreateButton("Beenden", 520, 56, 75, 25)
    $LGesamtfortschritt = GUICtrlCreateLabel("Gesamtfortschritt", 8, 288, 590, 17)
    $LabelDownladdatei = GUICtrlCreateLabel("", 8, 352, 590, 17)
    GUISetState(@SW_SHOW)
    HttpSetUserAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.7) Gecko/20100713 Firefox/3.6.16") ;sonst streiken manche Freehoster wenn der AutoItUseragent gesetzt ist

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $ButtonPatchen
    $PatchlistLoad = InetGet("http://white1991x.square7.ch/Patchlist.txt", @ScriptDir & "/Source.txt", 1, 0) ;wartet bsi fertig
    InetClose($PatchlistLoad)
    _FileReadToArray(@ScriptDir & "\Source.txt", $aLines)
    _ArrayDisplay($aLines)
    If StringInStr($aLines[$aLines[0]], 'Bytes Total : "') Then ;letzte Zeile enthält die Gesamtbytes
    $GesamtBytes = _StringBetween($aLines[$aLines[0]], 'Bytes Total : "', '"')
    Else
    $GesamtBytes = 0
    Dim $aFiles[$aLines[0] + 1][2]
    For $i = 1 To $aLines[0]
    If $aLines[$i] <> "" Then
    $aFiles[$i][0] = "http://white1991x.square7.ch/" & $aLines[$i]
    $aFiles[$i][1] = InetGetSize($aFiles[$i][0])
    $aFiles[0][1] += $aFiles[$i][1]
    EndIf
    Next
    EndIf
    $aFiles[0][0] = $aLines[0]
    _ArrayDisplay($aFiles)
    $iDownloaded = 0
    For $i = 1 To $aFiles[0][0]
    If $aFiles[$i][1] <> 0 Then
    $GetData = InetGet($aFiles[$i][0], @ScriptDir & "\" & $aLines[$i], 1, 1) ;im Hintergrund
    GUICtrlSetData($LabelDownladdatei, $aFiles[$i][0] & ": ")
    Do
    $aInfo = InetGetInfo($GetData)
    $iPercentAll = Round(($iDownloaded + $aInfo[0]) / $aFiles[0][1] * 100, 2)
    $iPercentCurrent = Round($aInfo[0] / $aFiles[$i][1] * 100, 2)
    GUICtrlSetData($GesamtProgress, $iPercentAll)
    GUICtrlSetData($EinzelProgress, $iPercentCurrent)
    GUICtrlSetData($LGesamtfortschritt, "Gesamtfortschritt: " & $iPercentAll & "%")
    GUICtrlSetData($LabelDownladdatei, $aFiles[$i][0] & ": " & $iPercentCurrent & "%")
    ConsoleWrite($iDownloaded + $aInfo[0] & " " & $aFiles[0][1] & " " & $iPercentAll & @TAB & $aInfo[0] & " " & $aFiles[$i][1] & " " & $iPercentCurrent & @CRLF)
    Sleep(1000)
    Until $aInfo[2]
    #cs
    [0]|4|11018458
    [1]|http://white1991x.square7.ch/Test2.txt|7345648
    [2]|http://white1991x.square7.ch/Test1.txt|3672810
    [3]|http://white1991x.square7.ch/Bytes Total : "11018458"|0
    #ce
    If $aInfo[3] Then ;wenn erfolgreich
    $iDownloaded += $aInfo[0]
    $sMsg &= $aFiles[$i][0] & @CRLF
    Else
    $sMsg2 &= $aFiles[$i][0] & @CRLF
    EndIf
    InetClose($GetData)
    EndIf
    Next
    if $sMsg <> "" Then MsgBox(64, "Download beendet","Folgende Dateien wurden erfolgreich heruntergeladen:" & @CRLF & @CRLF & $sMsg)
    if $sMsg2 <> "" Then MsgBox(16, "Download beendet","Folgende Dateien konnten nicht heruntergeladen werden:" & @CRLF & @CRLF & $sMsg)
    EndSwitch
    WEnd;### Tidy Error -> switch is never closed in your script.

    [/autoit]

    warum die Dateien bei mir nicht komplett heruntergeladen werden kann ich nicht nachvllziehen. Seltsamerweise wird aber kein Fehler erzeugt, jedenfalls ist Datei1.txt 815608 Bytes gross und nicht wie InetGetSize zurückliefert 3672810. Datei2.txt ist 801688 Bytes gross, InetGetsize liefert aber 7345648 Bytes als Grösse. Da die Summe der mit Inetgetsize zurückgegebenen Grössen die gleiche Grösse (11018458) ergeben die du ermittlelt hast gehe ich davon aus dass die Dateien fehlerhaft heruntergeladen werden.

    mfg autoBert

  • Patcher, Progress Gesamtdownloadstatus und Einzeldownloadstatus

    • autoBert
    • 21. Januar 2012 um 00:34

    Hallo Julien,

    so sollte es klappen:

    Spoiler anzeigen
    [autoit]

    #RequireAdmin
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <INet.au3>
    #include <File.au3>
    #include <String.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $aLines

    [/autoit] [autoit][/autoit] [autoit]

    $GUI = GUICreate("Patcher", 615, 419, 192, 124)
    $GesamtProgress = GUICtrlCreateProgress(8, 312, 590, 25)
    $EinzelProgress = GUICtrlCreateProgress(8, 376, 590, 25)
    $ButtonPatchen = GUICtrlCreateButton("Patchen", 520, 16, 75, 25)
    $ButtonBeenden = GUICtrlCreateButton("Beenden", 520, 56, 75, 25)
    $LGesamtfortschritt = GUICtrlCreateLabel("Gesamtfortschritt", 8, 288, 83, 17)
    $LabelProzent = GUICtrlCreateLabel("Prozent", 104, 288, 40, 17)
    $LabelDownladdatei = GUICtrlCreateLabel("", 8, 352, 137, 17)
    $Prozen = GUICtrlCreateLabel("", 176, 352, 37, 17)
    GUISetState(@SW_SHOW)
    HttpSetUserAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.7) Gecko/20100713 Firefox/3.6.16") ;sonst streiken manche Freehoster wenn der AutoItUseragent gesetzt ist

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $ButtonPatchen
    $PatchlistLoad = InetGet("http://white1991x.square7.ch/Patchlist.txt", @ScriptDir & "/Source.txt", 1, 0) ;wartet bsi fertig
    InetClose($PatchlistLoad)
    _FileReadToArray(@ScriptDir & "\Source.txt",$aLines)
    _ArrayDisplay($aLines)
    If StringInStr($aLines[$aLines[0]], 'Bytes Total : "') Then ;letzte Zeile enthält die Gesamtbytes
    $GesamtBytes = _StringBetween($aLines[$aLines[0]], 'Bytes Total : "', '"')
    Else
    $GesamtBytes = 0
    For $i = 1 To $aLines[0]
    $GesamtBytes += InetGetSize("http://white1991x.square7.ch/" & $aLines[$i])
    Next
    EndIf
    ; ConsoleWrite($GesamtBytes & @CRLF)
    $iDownloaded = 0
    For $i = 1 To $aLines[0]
    $iSize = InetGetSize($aLines[$i])
    $GetData = InetGet("http://white1991x.square7.ch/" & $aLines[$i], @ScriptDir & "\" & $aLines[$i], 1, 1) ;im Hintergrund
    Do
    $aInfo = InetGetInfo($GetData)
    GUICtrlSetData($GesamtProgress, $iDownloaded + $aInfo[0] / $GesamtBytes * 100)
    GUICtrlSetData($EinzelProgress, $aInfo[0] / $iSize * 100)
    Until $aInfo[2]
    $iDownloaded += $aInfo[0]
    InetClose($GetData)
    Next
    EndSwitch
    WEnd

    [/autoit]

    da ich eine sehr langsames INet habe, habe ich das Skript aber nicht komplett durchgetestet,

    mfg autoBert

  • StringMid bzw. Richedit Problem

    • autoBert
    • 19. Januar 2012 um 14:10

    Hallo Julien,

    nimm statt GuiCtrlRead für das RichEditCntro _GUICtrlRichEdit_GetText. Desweiteren slltest du noch eine Abbruchbedingung einbauen snst kmmst du nie aus der 2. Schleife. Ich würde es s machen:

    [autoit]

    Case $Start
    $Counter1 = 1
    $Counter2 = 0
    $i = 0
    $l = _GUICtrlRichEdit_GetTextLength($Edit1)
    Do
    If StringMid(_GUICtrlRichEdit_GetText($Edit1), $Counter1, 1) = StringMid(GUICtrlRead($Input1), $Counter1, 1) Then
    $Markieren = _GuiCtrlRichEdit_SetSel($Edit1, $Counter2, $Counter1)
    _GUICtrlRichEdit_SetCharColor($Edit1, 0x00FF00)
    _GUICtrlRichEdit_Deselect($Edit1)
    $Counter1 += 1
    $Counter2 += 1
    EndIf
    $i+= 1
    Until $i > $l

    [/autoit]

    mfg autoBert

  • Replay header Datei und Unicode strings auslesen

    • autoBert
    • 18. Januar 2012 um 22:21

    Hallo John,

    an einer Bilddatei kann niemand seine Ideen antesten stelle also besser die Datei (umbenennen) in deinem Eröffnungsbeitrag als Anhang ein,

    mfg autoBert

  • Icon-Maler gesucht!

    • autoBert
    • 18. Januar 2012 um 20:42
    Zitat von Saguhilla

    Ich weis zwar nicht ob jemand das braucht, aber ich habe hier über 3.600 Icons :)
    Alles *.ico-Dateien :)

    Liegen denn die Urheberrechte aller Icns bei dir? Nicht dass irgedwann eine Abmahnung kommt wenn ich eines verwende,

    mfg autBert

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™