mehrere Aufgaben zugleich?

  • Kann AutoIt mehrere Sachen zugleich machen, wie viele andere Programmier Sprachen?

    Zum Beispiel einen Ladebalken aendern oder ein Bild anzeigen und wechseln, waerend eine Programm Installation ausgefuerht wird?
    Oder geht es nicht, da es quasi eine Script Sprache ist und alles nacheinander ausgefuerht wird?
    Ich habe eine GUI erstellt, die im GuiOn Event Mode agiert. Schien mir das 'richtigere' zu sein.
    Nun mag ich einen Ladenbalken, der sich die ganze Zeit bewegt. also immer wieder voll wird und dann von vorn anfaengt. Und einen 2ten Balken, der sich nach einem anderen Muster(beliebig) unabhaengig von dem Ersten bewegt.

    Es geht zu verstehen, wie man eine solche Aufgabe realisieren kann.
    Ich hoffe das war deutlich... ?(

    MFG

    CAT

  • danke Dir fuer die prompte Antwort!

    HAt mir geholfen und weiss nun, wonach ich suchen muss.

    Schoenen Abend noch.

  • ok hallo, ok ich weiß das multitasking, bzw multithriting nicht ganz einfach ist, deswegen hoffe ich, ihr habt eine lösung bzw idee für mein problem.

    ich möchte eine while schleife laufen lassen, die in besimmten abständen eine von mir per Hand Aktualisierte Datei an meinen Server schickt.
    gleichzeitig möche ich aber eine überwachung meines USB-Ports, da soll er meine arbeits-fortschrits-Dateien speichern wenn dieser eingesteckt wird.
    nun mein problem, wie bekomm ich beide anwendungen in ein script?

    [autoit]


    ;upload auf server
    #RequireAdmin
    #include <FTPEx.au3>
    #include <Array.au3>
    #include <misc.au3>

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

    While 1
    Sleep (3600000);jede stunde
    Global $sPassword = "********"
    Global $sUser = "***************"
    Global $sServer = "***************"
    Global $spath = "@Desktopdir & "arbeitsprojekt.doc"
    Global $sOrdner = "/www"
    Global $sFilename = "arbeitsprojekt.doc"

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

    $hProgress = GUICtrlCreateProgress(8, 32, 297, 25)
    $hLabel = GUICtrlCreateLabel("", 91, 70, 200, 25)
    $hOpen = _FTP_Open("Autoit")
    $hConnect = _FTP_Connect($hOpen, $sServer, $sUser, $sPassword, 1)

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

    _FTP_ProgressUpload($hConnect, $sPath, $sOrdner&$sFilename, "_Update_Progress")

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

    _FTP_Close($hOpen)
    _FTP_Close($hConnect)
    Sleep(1000)
    WEnd
    Func _Update_Progress($iProzent)
    GUICtrlSetData($hProgress, $iProzent)
    GUICtrlSetData($hLabel, "Hochladen bei " & $iProzent & "% (Abbruch mit F8)")
    If _IsPressed("77") Then Return 0
    Return 1
    EndFunc
    ;=========================================================
    ;=========================================================
    ;Usbüberwachung und datei schreiben wärend der oberen While schleife
    #RequireAdmin
    Global $strComputer = "."
    Global $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\cimv2")

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

    $colEvents = $objWMIService.ExecNotificationQuery _
    ("Select * From __InstanceOperationEvent Within 5 Where " _
    & "TargetInstance isa 'Win32_LogicalDisk'")

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

    While 1
    $objEvent = $colEvents.NextEvent
    If $objEvent.TargetInstance.DriveType = 2 Then
    Select
    Case $objEvent.Path_.Class()="__InstanceCreationEvent"
    filecopy(@Desktop & "arbeitshilfe.jpg", $objEvent.TargetInstance.DeviceId,1)
    Case $objEvent.Path_.Class()="__InstanceDeletionEvent"
    msgbox(0,"abgeschlossen","USB-Stick wurde entfernt")
    ExitLoop
    EndSelect
    EndIf
    WEnd

    [/autoit]

  • Soweit ich weiß geht das nicht. Das Script wird, soweit ich weiß, angehalten, der Adlibteil wird ausgeführt und dann wird das Script an der alten Stelle fortgeführt.

    Genau da liegt mein Problem ich kenn mich mit Adlib- nicht wirklich aus, und die hilfe die ich dazu finden kann macht mich auch nicht schlauer.
    hab mal gehört das geht auch mit GUI's, womit ich mich auch net so auskenne, also ihr set, ich bin Blutiger anfänger, der viel erreichen will 8|

  • Hallo AsiX-5,

    Du kannst einiges mit AdlibEnable simulieren.

    Zitat

    Die adlib Funktion sollte einfach gehalten werden, da sie oft ausgeführt wird und während dieser Zeit das Skript pausiert.
    Außerdem sollte vorsichtig mit dem time-Parameter umgegangen werden um unnötige CPU-Last zu vermeiden.

    Quelle: dt. Hilfe

    was ist daran nicht zu verstehen? Es ist vernünftiger dies in 2 getrennten Skripten zu regeln,

    mach einen eigenen Thread auf, anstatt diesen alten zu kapern

    mfg autoBert