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. FichteFoll

Beiträge von FichteFoll

  • Beim Download friert der Prozess/das GUI ein - aber nur auf Vista/Xp

    • FichteFoll
    • 26. August 2010 um 16:50

    Danke für den Link, aber ich habe es jetzt wie oben gelöst und die Funktion über die While-Schleife aufgerufen. Anscheinend funktioniert es jetzt sowohl auf Xp als auch auf Vista.

    Es war wohl _Timer_SetTimer schuld, welches auf den verschiedenen OS anders funktioniert.

  • Anwendung

    • FichteFoll
    • 26. August 2010 um 15:26

    In dem Fall müsstest du mit der WinAPI bzw GDI arbeiten, um das Fenster (welches NICHT im Vordergrund oder ganz zu sehen ist) abbilden zu lassen und anschließend in ein Grafikelement (wie ich es auskommentiert hatte) auszugeben. Allerdings habe ich zu wenig Ahnung davon, um das zu verwirklichen, du müsstest als einen anderen fragen.

  • Anwendung

    • FichteFoll
    • 26. August 2010 um 14:30

    Definitiv nicht die beste Methode, aber es funktioniert:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Include <GDIPlus.au3>
    #Include <Screencapture.au3>

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

    Opt("GUIOnEventMode", 1)

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

    #region ### START Koda GUI section ### Form=
    $hGUI_Main = GUICreate("Fenstervorschau", 495, 309, 610, 299, BitOR($WS_MINIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_SYSMENU, $WS_CAPTION, $WS_POPUP, $WS_POPUPWINDOW, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))
    GUISetOnEvent($GUI_EVENT_CLOSE, "_OnEventClose")
    GUISetOnEvent($GUI_EVENT_RESIZED, "_OnEventResized")
    ;~ $hGrph = GUICtrlCreateGraphic(24, 32, 441, 233)
    $hPic = GUICtrlCreatePic("", 24, 32, 441, 233, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    GUICtrlSetResizing(-1, $GUI_DOCKHCENTER + $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKBOTTOM)
    $hbtn_Fwrd = GUICtrlCreateButton("Weiter", 392, 272, 75, 25, $WS_GROUP)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $hbtn_Back = GUICtrlCreateButton("Zurück", 24, 272, 75, 25, $WS_GROUP)
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKBOTTOM + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $hbtn_Activate = GUICtrlCreateButton("Aktivieren", 208, 272, 75, 25, $WS_GROUP)
    GUICtrlSetResizing(-1, $GUI_DOCKBOTTOM + $GUI_DOCKHCENTER + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $Label1 = GUICtrlCreateLabel("Fenstervorschau", 24, 8, 83, 17)
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    GUICtrlSetOnEvent($hbtn_Fwrd, "_NextWindow")
    GUICtrlSetOnEvent($hbtn_Back, "_PrevWindow")
    GUICtrlSetOnEvent($hbtn_Activate, "_WinActivate")

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

    Global $ahWndAll = WinList(), $ahWnd[1]
    For $i = 1 To $ahWndAll[0][0]
    If BitAND(WinGetState($ahWndAll[$i][1]), 2) And $ahWndAll[$i][0] <> "" And $ahWndAll[$i][0] <> "Start" And $ahWndAll[$i][0] <> "Program Manager" Then ; Nur sichtbare Fenster
    ReDim $ahWnd[UBound($ahWnd) + 1]
    $ahWnd[UBound($ahWnd) - 1] = $ahWndAll[$i][1]
    EndIf
    Next

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

    _ArrayDelete($ahWnd, 0)

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

    Global $index = 0, $max = UBound($ahWnd) - 1
    If $max = 0 Then
    GUICtrlSetState($hbtn_Fwrd, $GUI_DISABLE)
    GUICtrlSetState($hbtn_Back, $GUI_DISABLE)
    EndIf

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

    _UpdateGrph()

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

    While Sleep(50)
    WEnd

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

    Func _OnEventClose()
    FileDelete(@TempDir & "/Window.jpg")
    Exit
    EndFunc

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

    Func _OnEventResized()
    GUICtrlSetImage($hPic, @TempDir & "/Window.jpg")
    EndFunc

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

    Func _WinActivate()
    WinActivate($ahWnd[$index])
    EndFunc

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

    Func _NextWindow()
    $index += 1
    _UpdateGrph()
    If $index > 0 Then GUICtrlSetState($hbtn_Back, $GUI_ENABLE)
    If $index = $max Then GUICtrlSetState($hbtn_Fwrd, $GUI_DISABLE)
    EndFunc ;==>_NextWindow

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

    Func _PrevWindow()
    $index -= 1
    _UpdateGrph()
    If $index < $max Then GUICtrlSetState($hbtn_Fwrd, $GUI_ENABLE)
    If $index = 0 Then GUICtrlSetState($hbtn_Back, $GUI_DISABLE)
    EndFunc ;==>_PrevWindow

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

    Func _UpdateGrph()
    For $i = 0 To $max
    WinSetTrans($ahWnd[$i], "", 00)
    Next
    WinSetTrans($ahWnd[$index], "", 255)
    $hbmpWin = _ScreenCapture_CaptureWnd(@TempDir & "/Window.jpg", $ahWnd[$index])
    For $i = 0 To $max
    WinSetTrans($ahWnd[$i], "", 255)
    Next
    _OnEventResized()
    EndFunc ;==>_UpdateGrph

    [/autoit]

    In Windows 7 wird eine Miniaturansicht der Fenster bezüglich der Taskbartabs gespeichert, aber das wäre einen deut komplizierter das zu benutzen.
    In meinem Beispiel sieht es scheiße aus, aber funktioniert immerhin.

  • 2 Internet Explorer in das GUI einbinden

    • FichteFoll
    • 26. August 2010 um 13:16

    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]


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

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

    $Form1 = GUICreate("BLUB", 625, 465, 640, 280)
    $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)

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

    GUISetState() ;Show GUI

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

    $Obj1.navigate("http://www.autoitscript.com")
    $Obj2.navigate("http://www.autoit.de")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Button1

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

    GUICtrlSetState($Button1, $GUI_Disable)
    GUICtrlSetState($Button2, $GUI_Enable)
    GUICtrlSetState($Button3, $GUI_Enable)

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

    GUICtrlSetState($Obj2_ctrl, $GUI_Hide)
    GUICtrlSetState($Obj1_ctrl, $GUI_SHOW)

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

    Case $Button2

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

    GUICtrlSetState($Button1, $GUI_Enable)
    GUICtrlSetState($Button2, $GUI_Disable)
    GUICtrlSetState($Button3, $GUI_Enable)

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

    GUICtrlSetState($Obj1_ctrl, $GUI_Hide)
    GUICtrlSetState($Obj2_ctrl, $GUI_SHOW)

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

    Case $Button3

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

    GUICtrlSetState($Button1, $GUI_Enable)
    GUICtrlSetState($Button2, $GUI_Enable)
    GUICtrlSetState($Button3, $GUI_Disable)

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

    GUICtrlSetState($Obj1_ctrl, $GUI_Hide)
    GUICtrlSetState($Obj2_ctrl, $GUI_Hide)

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

    EndSwitch
    WEnd

    [/autoit]
  • Beim Download friert der Prozess/das GUI ein - aber nur auf Vista/Xp

    • FichteFoll
    • 25. August 2010 um 22:14
    Zitat von black_skorpi

    tut mir Leid, dass ich mich in euer Fachgespräch einmische, aber zur Not kannst du eine 2. EXE benutzen, um das Mainscript zu entlasten.

    Wenn ich den Download über ein anderes Script/andere exe laufen lasse, kann ich nicht/nur umständlich mit dem Mainthread kommunizieren. Also den Download abbrechen, Variablen überprüfen, auf Optionen Rücksicht nehmen, den Status anzeigen usw.

    Ich mach es einfach mal wie in meinem letzten Post beschrieben und teste mal, ob es dann funktioniert.

  • Problem beim auswaehlen eines Dropdown-Elements

    • FichteFoll
    • 25. August 2010 um 17:00

    Es handelt sich also um

    Spoiler anzeigen
    Code
    <form action="http://localhost/send.php" method="post" id="send">
    <DIV id=returnField>
    <SELECT name=return> 
    <OPTION selected value=0>-</OPTION> 
    <OPTION value=1>12:10:1</OPTION> 
    <OPTION value=2>2</OPTION> 
    <OPTION value=3>3</OPTION> 
    <OPTION value=4>4</OPTION> 
    <OPTION value=5>5</OPTION>
    </SELECT>
    </DIV>
    </form>
    Alles anzeigen


    ?

    Theoretisch müsstest du es mal so probieren:

    Spoiler anzeigen
    [autoit]


    #include <IE.au3>

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

    $oForm = $oIE.document.getElementById("send") ; by ID
    ;~ $oForm = $oDocument.forms.item(1) ; get Form count 1

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

    $oSelect = $oForm.elements.item("return") ; "Select"-Item
    $oSelect.options.item(2).selected = True ; Select item 2

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

    ; ===================================

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

    _IEGetObjById($oIE, "send") ; by ID
    ;~ $oForm = _IEFormGetCollection($oIE, 1) ; get Form count 1

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

    $oSelect = _IEFormElementGetObjByName($oForm, "return") ; "Select"-Item
    _IEFormElementOptionSelect($oSelect, 2, 1, "byIndex") ; Select item 2

    [/autoit]


    Habe einmal per UDF und einmal manuell aufgeschrieben^^ Ich kann atm nicht testen, ob es funktioniert, aber es sollte dir auf jeden Fall Anhaltspunkte geben.

  • [SciTE/Notepad++] Send To Pastebin / Get From Pastebin

    • FichteFoll
    • 25. August 2010 um 16:30

    Funktioniert gut, danke.

    Allerdings hast du in der Datei im Anhang

    Code
    .40.*="$(autoit3dir)\autoit3.exe" "$(SciteDefaultHome)\Paste\paste.au3" "$(FilePath)" "$(CurrentSelection)"


    anstatt

    Code
    command.40.*="$(autoit3dir)\autoit3.exe" "$(SciteDefaultHome)\Paste\paste.au3" "$(FilePath)" "$(CurrentSelection)"


    geschrieben ;)

  • Beim Download friert der Prozess/das GUI ein - aber nur auf Vista/Xp

    • FichteFoll
    • 25. August 2010 um 15:25

    Ich habe mal das Verhalten während des Downloads analysiert und ein paar Methoden ausprobiert.

    Starten des Downloads mit AdlibRegister: Das Fenster reagiert nicht mehr auf die Maus, weil ich die Routine dafür auch in einer Adlib-Funktion gelagert habe, sodass diese auch während des Downloads ausgeführt wird. Da allerdings gewartet wird, bis ein Adlib-Callback abgeschlossen ist, wird diese Funktion nicht aufgerufen.

    Benutzen von mehreren Threads via "CreateThread": Die Messagebox zur Überprüfung wird gestartet, aber bei Variablen crasht Autoit.

    Starten des Downloads mit "_Timer_SetTimer" (wie ich es zuvor machte): Es wird nach x ms ein neuer Thread mit der Downloadfunktion gestartet, wodurch alles normal funktioniert.

    Ich kann mir nur einfach nicht erklären, wieso das unter Vista und Xp anders funktioniert. Werden dort Timer-Events anders gehandhabt und zB kein neuer Thread gestartet? Das erklärt dann allerdings nicht, wieso der Prozess komplett einfriert und die Progressbars ebenfalls nicht aktualisiert werden.

    Auf Xp könnte man vielleicht darauf zurückschließen, dass das Timerevent verwaltet und die Funktion gestartet wird. Anschließend wird nachwievor "_Adlib" aufgerufen, aber es wird auf keine anderen Events mehr geachtet bzw diese alle in die Schleife eingehängt, weil ja das Timerevent noch nicht abgeschlossen ist.

    Trotzdem ist es bescheuert... Achja, ich vermute demnach übrigens, dass _Timer_SetTimer schuld ist. Alternative dazu wäre, dass ich die Funktion (Wie ganz zuvor, bevor ich mehrere Downloads parallel hatte) über ein Flag in der globalen While-Schleife aufrufen lasse. So wäre es zwar umständlicher, aber was solls.

  • Beim Download friert der Prozess/das GUI ein - aber nur auf Vista/Xp

    • FichteFoll
    • 24. August 2010 um 11:00
    Zitat von autoBert

    Hallo FichteFoll,

    kann in deinem stark gekürztem Skript weder "InetGet" noch "Addlib" finden. Ich tendiere aber dazu das "_InetGetSource" (finde ich zwar auch nicht) die schuldige Func ist. Solange du nicht wenigstens einen Link zum Analyse-Ergenis der Überpüfung des Files bei VirusTotal.com einstellst, wird es kaum jemanden geben der es testet. Bei meinen [Beispiel] NeMP3-P (MP3-Player) Version 0.8.4.7 habe ich es so gemacht, dort habe ich auch dass Problem das am Anfang der Update-Funktion die GUI nicht reagiert,
    Besser wäre natürlich der Source.

    Mir ist aufgefallen dass du dich mit "fremden Federn schmückst" soll hsisen du benutzt ffmpeg zur Konvertierung des downgeloadeten Files erwähnst aber in keiner Weise, dass du ein Fremdprogramm benutzt. Dies ist eindeutig ein Verstoss gegen die GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 die dem Originaldownload von ffmpeg beiliegt,

    Du hast recht, den Teil mit InetGet hatte ich vergessen, habe es jetzt korrigiert. AdlibRegister kommt jedoch am Anfang vor (bei den anderen OnEvent-Registrierungsfunktionen) und _InetGetSource habe ich gar nicht benutzt, sondern die Schritte manuell gemacht. Daran kann es aber irgendwie nicht liegen, weil das viel zu schnell geht.

    Virustotal Link habe ich oben eingefügt, danke.

    In der ReadMe.txt habe ich vermerkt, dass ich ffmpeg zum Konvertieren verwende, aber im "About"-Tab noch nicht. Ich muss sowieso erst noch gucken, ob ich das YT-Logo überhaupt verwenden darf.

  • Beim Download friert der Prozess/das GUI ein - aber nur auf Vista/Xp

    • FichteFoll
    • 23. August 2010 um 22:37

    Es geht um folgendes Programm (ich hoffe mal, ich darf einfach den Link zu den Dateien posten):
    http://yt-downloader.ath.cx/download/files/V2.5.0.100811/
    Virustotal: http://www.virustotal.com/file-scan/repo…79bf-1282607482

    Wenn Links eingefügt sind und man auf "Download All" klickt, wird der Download gestartet.
    Auf Vista geschiet dann folgendes: Gar nichts. Das Fenster slidet nicht mehr nach rechts (was es tun sollte, sobald die Maus nicht darüber ist) und das Traymenü erscheint auch nicht mehr. Nach mehrfachen Klicks kommt das Bekannte "YT-Downloader blabla reagiert nicht mehr.". Wenn man einige zeit wartet, ist der Download jedoch dennoch fertig und alles ist wieder normal, wie es sein sollte.

    Auf Xp aktualisiert er das GUI immerhin so lange, bis es der Mauszeiger verlässt. Beim anschließenden Reinsliden sieht man nur die ProgressBar(s) und evtl. einen Button. Es passiert jedoch nichts, wenn man diesen klickt. Ob das Traymenü reagiert, weiß ich gerade allerdings nicht.

    Auf 7 dagegen funktioniert alles genau so, wie es sein sollte.

    Zusätzlich dazu: http://yt-downloader.ath.cx/mantisbt/view.php?id=2

    Ich habe mal die wichtigen Teile aus dem Source rausholt, weil ich den gesamten Code nicht gerne verteilen würde und es außerdem 1800 Zeilen wären.

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ; viel Init-stuff

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

    $hGUI_Main = GUICreate("YT-Downloader", 494, 129, -1, -1, BitOR($WS_DLGFRAME, $WS_POPUP))
    GUISetBkColor(0xFFFFFF)
    $pGUI_Main = Number($hGUI_Main)

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

    $hLbl_Status = GUICtrlCreateLabel("", 0, 8, 166, 16, $SS_CENTER)
    GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
    GUICtrlCreatePic(@ScriptDir & "\Data\YT.jpg", 8, 40, 148, 57, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    $hBtn_Download = GUICtrlCreateButton("Download All", 336, 96, 80, 25, $WS_GROUP)
    $hBtn_Options = GUICtrlCreateButton("Options", 441, 100, 44, 21, $WS_GROUP)
    $hLbl_Video = GUICtrlCreateLabel("YouTube Videos:", 168, 8, 148, 15, $SS_CENTER)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $hList_Downloads = GUICtrlCreateList("", 168, 24, 148, 97, BitOR($LBS_SORT, $LBS_STANDARD, $WS_VSCROLL, $WS_BORDER))
    GUICtrlSetData(-1, "")
    $hCB_HD = GUICtrlCreateCheckbox("HD", 336, 8, 41, 17)
    $hCB_FHD = GUICtrlCreateCheckbox("Full-HD", 382, 8, 54, 17, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_LEFT, $WS_TABSTOP))
    $hCB_Mp3 = GUICtrlCreateCheckbox("Mp3", 444, 8, 41, 17, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_RIGHT, $WS_TABSTOP))
    $hPrg_Current = GUICtrlCreateProgress(336, 26, 148, 17)
    $hLabel3 = GUICtrlCreateLabel("Total:", 424, 48, 27, 17)
    $hLbl_DlCur = GUICtrlCreateLabel("0%", 386, 48, 30, 17, $SS_RIGHT)
    $hLbl_DlTot = GUICtrlCreateLabel("0%", 454, 48, 30, 17, $SS_RIGHT)
    $hLbl_Dl = GUICtrlCreateLabel("Waiting", 336, 48, 49, 17, $SS_RIGHT)
    $hPrg_Total = GUICtrlCreateProgress(336, 66, 148, 17)

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

    WinSetTrans($hGUI_Main, '', 0) ; Invisible
    _SlideWin($hGUI_Main, "in", "right") ; Set position
    $bSlidedIn = True
    GUISetState(@SW_SHOW, $hGUI_Main)
    For $iStep = 000 To 255 Step 12 ; Fade in
    WinSetTrans($hGUI_Main, '', $iStep)
    Sleep(10)
    Next

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

    ; stuff

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

    GUICtrlSetOnEvent($hBtn_Download, "_OnClick_Download")
    GUICtrlSetOnEvent($hBtn_Options, "_Options")
    ; ===========================
    GUISetOnEvent($GUI_EVENT_RESTORE, "_Restore", $hGUI_Main)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_OnEventClose_Main", $hGUI_Main)
    ; ===========================
    AdlibRegister("_Adlib", 100)

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

    While Sleep(200)
    WEnd

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

    Func _Adlib() ; Do every 100 ms !
    ; Slide
    Switch _WinIsHovered($hGUI_Main, $hDll_User32)
    Case 1
    If ($bNoSlide = False) And ($bSlidedIn = False) Then
    _SlideWin($hGUI_Main, "in", "right")
    $bSlidedIn = True
    EndIf
    Case 0
    If $bSlidedIn And ($bNoSlide = False) Then
    _SlideWin($hGUI_Main, "out", "right")
    $bSlidedIn = False
    EndIf
    EndSwitch
    EndFunc

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

    Func _OnEventClose_Main()
    Exit -3
    EndFunc ;==>_OnEventClose_Main

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

    Func _OnClick_Download()
    If $bDownloading Then $bDownloading = False
    If _GUICtrlListBox_GetCount($hList_Downloads) Then _Timer_SetTimer($hGUI_Main, 100, "_InitializeDownload")
    EndFunc ;==>_OnClick_Download

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

    Func _Options()
    _LogLoad()
    GUISetState(@SW_SHOW, $hGUI_Option) ; Hab ich mir mal gespart, wäre überflüssig gewesen
    WinActivate($hGUI_Option)
    EndFunc ;==>_Options

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

    Func _Restore()
    If Not $bSlidedIn And Not $bNoSlide Then ; If Not ($bSlidedIn Or $bNoSlide)
    _SlideWin($hGUI_Main, "in", "right")
    $bSlidedIn = True
    Sleep(700)
    EndIf
    EndFunc ;==>_Restore

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

    ; jetzt gehts los
    Func _InitializeDownload($hWnd, $Msg, $iIDTimer, $dwTime) ; Timer params
    _Timer_KillTimer($hGUI_Main, $iIDTimer) ; $iTimerID3

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

    $bDownloading = True

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

    Dim $sFinished = "", $iDownloaded = 0, $bError = False, $iIcon = 1

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

    While _GUICtrlListBox_GetCount($hList_Downloads)
    ; stuff

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

    $sText = _GUICtrlListBox_GetText($hList_Downloads, 0)
    GUICtrlSetData($hLbl_Video, $sText)
    _GUICtrlListBox_DeleteString($hList_Downloads, 0)
    $sYtURL = Eval(StringRegExpReplace($sText, "[\[\]]", ''))
    If @error Then
    $bError = True
    _LogWrite("Error - Download", "Could not allocate URl", $sText)
    Else
    _Download($sYtURL)
    EndIf

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

    If $bDownloading = False Then ; If canceled
    ; stuff
    ExitLoop
    EndIf

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

    If $bError = True Then ; If failed
    ; stuff
    ExitLoop
    EndIf
    WEnd

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

    $bDownloading = False

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

    EndFunc ;==>_InitializeDownload

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

    Func _Download($sURL)
    ; stuff
    $iDlSize = InetGetSize($sDownloadLink)
    If Not $iDlSize Then $bError = True
    ; stuff

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

    ;Download
    $hDL = InetGet($sDownloadLink, $sFileName, 0, 1)

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

    Local $Download_percent, $iTotal, $finished, $downloading, $Total_percent

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

    Do
    $iSize2 = InetGetInfo($hDL, 0)
    $Download_percent = Round((100 * $iSize2) / $iDlSize, 1)
    GUICtrlSetData($hPrg_Current, Floor($Download_percent))
    GUICtrlSetData($hLbl_DlCur, $Download_percent & "%") ; Set GUI
    GUICtrlSetData($hLbl_Dl, "Dl:" & $sFMT)

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

    $iTotal = $iDownloaded + _GUICtrlListBox_GetCount($hList_Downloads) + 1 ; Currently downloading but deleted in List
    $finished = ($iDownloaded * 100 / $iTotal)
    $downloading = $Download_percent / $iTotal

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

    If GUICtrlRead($hCB_Mp3) = 1 Then $downloading = $downloading * (3 / 4) ; Needs to convert

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

    $Total_percent = $finished + $downloading

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

    ; Taskbar-Zeugs entfernt, würde eh nur verwirren

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

    GUICtrlSetData($hPrg_Total, Floor($Total_percent)) ; Set GUI
    GUICtrlSetData($hLbl_DlTot, Round($Total_percent, 1) & "%")
    Sleep(200)
    Until ($iSize2 >= $iDlSize) Or $bDownloading = False

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

    ; stuff
    EndFunc ;==>_Download

    [/autoit]


    Kann noch improvisiert werden, aber atm würde ich gerne das Problem lösen. Ich hab einige Dinge ausgelassen, die aber an sich nichts mit dem Download zu tun haben sondern nur drum herum sind. Variablendeklaration hab ich weggelassen, die globalen Variablen sollten sowieso offensichtlich sein.

    Meine Vermutung geht in Richtung InetGet oder AdlibRegister, was evtl verschiedene Verhaltensweisen auf Vista, Xp und 7 hervorrufen könnte, aber ich habe keinerlei Anhaltspunkte.

    Ich habe bereits auf autoitsoure danach gesucht, aber es scheint niemand, dasselbe Problem zu haben.
    Wenn jemand Xp oder Vista benutzt, dann lädt er das Programm am besten selbst runter und spielt damit was rum.
    Es wäre schön, wenn jemand von euch ne Idee dazu hätte ;)
    Bei Unklarheiten natürlich fragen.

  • welcber browser ist installiet

    • FichteFoll
    • 23. August 2010 um 21:37

    Möchtest du abfragen, welcher Browser der Standardbrowser ist, oder möchstest du überprüfen, ob ein bestimmter Browser installiert ist?

  • Bekomme einen Fehler bei FileOpen -> Das müsst ihr wissen^^

    • FichteFoll
    • 19. Juni 2010 um 22:46

    Ich bin mir nicht sicher, ob ich es verstanden habe, aber ich würde es so machen

    [autoit]


    Func _StartUploadDat()
    Run("upload.bat", @WindowsDir)
    EndFunc

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

    AdlibRegister("_StartUploadDat", 5000)

    [/autoit]

    Dann brauchst du auch die "startbat.txt" nicht mehr.
    Übrigens: Wenn du eine Datei umbenennst heißt das nicht automatisch, dass die Datei dann auch funktioniert.
    Eine von ".txt" zu ".exe" umbenannte Datei wird nicht starten.

  • UDF: _CheckIfAutoitExe()

    • FichteFoll
    • 2. Mai 2010 um 15:10

    Achso^^ jetzt verstehe ich es. Dann solltest du aber trotzdem den Aufruf ohne optionalen Parameter machen.

    [autoit]

    Func _CheckIfAutoItExe($strFunc_Exe)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]
  • UDF: _CheckIfAutoitExe()

    • FichteFoll
    • 2. Mai 2010 um 15:04

    Gibt auch andere alternativen:

    [autoit]

    If @Compiled = 1 Then MsgBox(0, "Test", "Das Skript ist kompiliert")

    [/autoit][autoit]

    If @AutoItExe = @ScriptName Then MsgBox(0, "Test", "Das Skript ist kompiliert")

    [/autoit]
  • Doodle Jump für Pc

    • FichteFoll
    • 17. April 2010 um 12:29

    Ist wirklich ganz gut gemacht das Spiel^^

    Das Spiel könnte allerdings durchaus ein bisschen schneller sein, damit mehr Action rein kommt.

    Und (falls es noch nicht genannt wurde) die weißen Plattformen verschwinden nicht, wenn man auf sie springt. Man fällt zwar danach durch sie durch, aber sie sind noch zu sehen.

  • Stadt, Land, Fluss für PC [BALD AUCH MULTIPLAYER]

    • FichteFoll
    • 15. April 2010 um 19:24

    Raupi : Kaum fang ich damit an, hat es schon einer fertig gemacht...

    Hab den Code auch mal deutlich verkleinert und einige kleine Korrekturen vorgenommen sowie einige Sachen hinzugefügt.

    Spoiler anzeigen
    [autoit]

    Global $Buchstabe = "AB", $Zahl = 1, $StadtName = "", $FlussName = "", $LandName = ""
    Global $Runde = "1"
    Global $Punkte = ""

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

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $StadtLandFluss_1 = GUICreate("Stadt, Land, Fluss", 478, 169, -1, -1)
    $Start = GUICtrlCreateButton("Starte Spiel", 0, 0, 151, 31, $WS_GROUP)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $ListView1 = GUICtrlCreateListView("Stadt|Land|Fluss|Punkte", 172, 0, 304, 166)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 83)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 83)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 83)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 50)
    $Label1 = GUICtrlCreateLabel("Buchstabe:", 4, 30, 116, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Stadt = GUICtrlCreateButton("Stadt", 2, 54, 75, 25, $WS_GROUP)
    $Land = GUICtrlCreateButton("Land", 2, 78, 75, 25, $WS_GROUP)
    $Fluss = GUICtrlCreateButton("Fluss", 2, 102, 75, 25, $WS_GROUP)
    $Punkte = GUICtrlCreateButton("Punkte eintragen", 76, 142, 95, 25, $WS_GROUP)
    $Credits = GUICtrlCreateButton("Credits", 2, 142, 75, 25, $WS_GROUP)
    GUICtrlSetState ($Punkte, $GUI_DISABLE)
    GUICtrlSetState ($Land, $GUI_DISABLE)
    GUICtrlSetState ($Fluss, $GUI_DISABLE)
    GUICtrlSetState ($Stadt, $GUI_DISABLE)
    GUISetState(@SW_SHOW)

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

    #EndRegion ### END Koda GUI section ###

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

    While True
    _Main()
    WEnd

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

    Func _Main()
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Start
    $Zahl = Random(1, 26, 1) + 65
    GUICtrlSetState ($Punkte, $GUI_ENABLE)
    GUICtrlSetState ($Land, $GUI_ENABLE)
    GUICtrlSetState ($Fluss, $GUI_ENABLE)
    GUICtrlSetState ($Stadt, $GUI_ENABLE)
    GUICtrlSetState ($Start, $GUI_DISABLE)

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

    $Buchstabe = Chr($Zahl)
    GUICtrlSetData($Label1, "Buchstabe: "&$Buchstabe)

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

    Global $LVItem = GUICtrlCreateListViewItem ("", $ListView1)

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

    Case $Stadt
    If $Buchstabe = "AB" Then
    MsgBox (0, "Error", "Du hast das Spiel noch nicht gestartet!")
    Return
    EndIf

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

    $StadtName = InputBox ("Stadt", "Den Namen der Stadt", $Buchstabe)
    If StringUpper(StringLeft($StadtName, 1) ) <> $Buchstabe Then Return

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

    GuiCtrlSetData($LVItem,$StadtName&"|"&$LandName&"|"&$FlussName)
    GUICtrlSetState($Stadt, $GUI_DISABLE)

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

    Case $Land
    If $Buchstabe = "AB" Then
    MsgBox (0, "Error", "Du hast das Spiel noch nicht gestartet!")
    Return
    EndIf

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

    $LandName = InputBox ("Stadt", "Den Namen des Landes", $Buchstabe)
    If StringUpper(StringLeft($LandName, 1) ) <> $Buchstabe Then Return

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

    GuiCtrlSetData($LVItem,$StadtName&"|"&$LandName&"|"&$FlussName)
    GUICtrlSetState($Land, $GUI_DISABLE)

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

    Case $Fluss
    If $Buchstabe = "AB" Then
    MsgBox (0, "Error", "Du hast das Spiel noch nicht gestartet!")
    Return
    EndIf

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

    $FlussName = InputBox ("Stadt", "Den Namen des Flusses", $Buchstabe)
    If StringUpper(StringLeft($FlussName, 1) ) <> $Buchstabe Then Return

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

    GuiCtrlSetData($LVItem,$StadtName&"|"&$LandName&"|"&$FlussName)
    GUICtrlSetState($Fluss, $GUI_DISABLE)

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

    Case $Punkte
    Local $Punkte = InputBox ("Wieviele Punkte?", "Wie viele Punkte hast du für die Stadt ?", 10)
    $Punkte += InputBox ("Wieviele Punkte?", "Wie viele Punkte hast du für das Land ?", 10)
    $Punkte += InputBox ("Wieviele Punkte?", "Wie viele Punkte hast du für den Fluss ?", 10)

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

    GuiCtrlSetData($LVItem,$StadtName&"|"&$LandName&"|"&$FlussName&"|"&$Punkte)
    GUICtrlSetState ($Punkte, $GUI_DISABLE)
    GUICtrlSetState ($Start, $GUI_ENABLE)
    GUICtrlSetState ($Land, $GUI_DISABLE)
    GUICtrlSetState ($Fluss, $GUI_DISABLE)
    GUICtrlSetState ($Stadt, $GUI_DISABLE)
    GUICtrlSetData ($Start, "Starte neue Runde")

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

    Case $Credits
    MsgBox (0, "Credits", "Version 1.0 made by EliteMattthias"&@CRLF&"Special Thanks:"&@CRLF&"AutoBert (Für Hilfe)"&@CRLF&@CRLF&"(C) EliteMattthias"&@CRLF&"Alle Rechte sind vorbehalten!"&@CRLF&@CRLF&@CRLF&@CRLF&"Update coming next Time...")

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

    EndSwitch
    EndFunc

    [/autoit]

    €dit: Also das mit Online könnte auch relativ schnell gehen, du musst dir nur ein Muster dafür ausdenken. Ich empfehle dir dich diesbezüglich mal mit TCP zu beschäftigen, also mit den Funktionen.

  • [Hilfe] Obfuscator

    • FichteFoll
    • 21. März 2010 um 20:20

    Du könntest vielleicht "Opt('ExpandVarStrings', 1)" benutzen, sodass du stattdessen einfach "@SW_SHOW@" schreiben kannst...

  • Desktop Radio 3.9

    • FichteFoll
    • 14. März 2010 um 11:51

    Wenn ich im Music Manager einen Song hinzufüge und in anschließend abspielen will kommt

    Code
    Line -1:
    
    
    Error: Array variable has incorrect number of subscripts or subscript dimension range exeeded.

    Angesichts der Tatsache, dass in der Music.txt kein Pfad gespeichert wird, denke ich dass du vergessen hast diesen in diesen Array zu schreiben o.ä.

    Und "Favoriten" schreibt man so.


    Ansonsten funzt das natürlich nice ;)
    Ich frage mich nur, wie du die Onlinestrams abspielst.

  • _SoundStatus() Zeichen vergessen

    • FichteFoll
    • 6. März 2010 um 10:31
    [autoit]

    _SoundPlay($sound)
    ConsoleWrite("Status nach _SoundPlay: " & _SoundStatus($sound) & @CRLF)

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

    Sleep(1000)

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

    _SoundPause($sound)
    ConsoleWrite("Status nach _SoundPause: " & _SoundStatus($sound) & CRLF)

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

    Sleep(1000)
    _SoundResume($sound)

    [/autoit]

    Beim 2. @CRLF fehlt das @

  • FileMove umbenennen geht nicht

    • FichteFoll
    • 27. Februar 2010 um 21:33
    [autoit]

    _ExcelBookClose($oExcel)
    FileCopy(@ScriptDir & "\Skripte\Start\Liste\ExcelListen\Daten.xls", @ScriptDir & "\Skripte\Start\", 9)
    ShellExecuteWait("start.bat","",@ScriptDir & "\Skripte\Start","")
    $readts4 = FileOpen(@ScriptDir & "\Skripte\Start\Liste\Listen\ts3.log", 0)
    $readts3 = FileRead($readts4)
    FileClose($readts4)
    copie()
    EndFunc ;==>allgemein

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

    Func move1()
    MsgBox(0,"info", $sdv & "Sicherungen\sicherung\" & $readts3)
    FileMove(@ScriptDir & "\Skripte\Start\algemein.zip", $sdv & "Sicherungen\allgemein\" & $readts3, 9)
    FileDelete(@ScriptDir & "\Skripte\Start\Daten.xls")
    EndFunc ;==>move1

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

    Func move2()
    MsgBox(0,"info", $sdv & "Sicherungen\sicherung\" & $readts3)
    FileCopy(@ScriptDir & "\Skripte\Start\algemein.zip", ($sdv & "Sicherungen\allgemein\" & $readts3), 9)
    FileDelete(@ScriptDir & "\Skripte\Start\algemein.zip")
    FileDelete(@ScriptDir & "\Skripte\Start\Daten.xls")
    EndFunc ;==>move2

    [/autoit]

    Wenn du FileMove() Benutzt, musst du die Datei nicht mehr löschen.
    Kannst du die Datei denn überhaupt löschen? Dann wäre wohl die 2. Variante am besten, da diese (fast) IMMER kopiert und danach erst löscht.

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™