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

Beiträge von Ilse

  • Loop Problem

    • Ilse
    • 3. November 2011 um 13:00

    Hallo Raupi,

    habe das mal so eingebaut.
    Der Ablauf ist soweit in Ordnung.

    Wie kann ich aber den Loop vorzeitig beenden?

    Habe ExitLoop eingebaut, das geht aber leider nicht!

    [autoit]


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

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

    $Form1 = GUICreate("Form1", 438, 89, 192, 132)
    $Loop = GUICtrlCreateButton("Loop-Start", 32, 24, 179, 49)
    $Loopinfo = GUICtrlCreateButton("Info", 240, 24, 179, 49)
    GUISetState(@SW_SHOW)
    Global $i500 = 500

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

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

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

    Case $Loop
    Page()
    Case $Loopinfo
    info()
    EndSwitch
    WEnd

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

    Func Page()

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

    For $i = 1 To 10
    ConsoleWrite($i & @CRLF)

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

    _MySleep($i500)
    Next

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

    EndFunc ;==>Page

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

    Func info()

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

    MsgBox(0, "", "test", 1)
    ;ExitLoop

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

    EndFunc ;==>info

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

    Func _MySleep($iMSec)
    Local $nMsg, $dt = TimerInit()
    Do
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Loopinfo

    info()
    ExitLoop ; Loop verlassen klappt leider nicht!

    EndSwitch
    Sleep(10)
    Until TimerDiff($dt) > $iMSec
    EndFunc ;==>_MySleep

    [/autoit]

    Grüße ;)
    Ilse

  • Endlosloop Start-Stop

    • Ilse
    • 3. November 2011 um 10:34

    Hallo,

    habe mal wieder ein Problem mit einem Loop.

    Folgendes:
    Wenn ich den Button anklicke,
    dann soll der Loop endlos laufen und erst
    aufhören, wenn ich den Button erneut drücke.

    [autoit]


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

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

    $Form3 = GUICreate("Form3", 403, 116, 302, 218)
    $Button1 = GUICtrlCreateButton("Blättern", 112, 24, 177, 65)
    GUISetState(@SW_SHOW)

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

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

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

    Case $Button1
    While 1
    Sleep(2000)
    Send("{RIGHT}")
    Sleep(50)
    WEnd
    EndSwitch
    WEnd

    [/autoit]

    Gut wäre auch wenn sich die Caption ändert (Weiter/Stop)
    Habe in der Hilfe ExitLoop probiert
    das Problem ist aber wie kann ich das mit nur einem Button machen?

    Liebe Grüße
    Ilse ;)

  • Loop Problem

    • Ilse
    • 2. November 2011 um 20:08

    Hallo AutoBert,

    schön daß du dich wieder gemeldet hast.
    Ich bin aber leider immer noch nicht am Ziel.

    Habe es so versucht:

    [autoit]


    Func Page()

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

    For $i = 1 To 10
    ;ConsoleWrite($i & @CRLF)
    _MySleep($i500)) ; hier habe ich den Wert geändert
    MsgBox(0,"",$i,1)
    Next

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

    EndFunc ;==>Page

    [/autoit]

    Danach mußte ich die Variable deklarieren

    Global $i500

    ging aber leider auch nicht.

    Muß ich auch die Funktion ändern?

    [autoit]


    Func _MySleep($iMSec)
    Local $nMsg, $dt = TimerInit()
    Do
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Loopinfo
    info()
    EndSwitch
    Sleep(10)
    Until TimerDiff($dt) > $iMSec
    EndFunc ;==>_MySleep

    [/autoit]

    Es geht um die Schnelligkeit der Loopdurchläufe.

    Liebe Grüße
    Ilse ;)

  • Loop Problem

    • Ilse
    • 2. November 2011 um 14:52

    Hallo,

    muß mich wieder melden.

    Eine Frage noch:
    Wie kann man die Geschwindigkeit des Loops
    ändern?
    Ich meine daß der Loop z.B. Sekundenweise oder alle 4 Sekunden... durchläuft.

    Wenn ich die Funktion _MySleep deaktiviere
    dann geht das. Wie kann man das in der Funktion ändern?

    [autoit]


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

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

    $Form1 = GUICreate("Form1", 438, 89, 192, 132)
    $Loop = GUICtrlCreateButton("Loop-Start", 32, 24, 179, 49)
    $Loopinfo = GUICtrlCreateButton("Info", 240, 24, 179, 49)
    GUISetState(@SW_SHOW)

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

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

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

    Case $Loop
    Page()
    Case $Loopinfo
    info()
    EndSwitch
    WEnd

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

    Func Page()

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

    For $i = 1 To 10
    ;ConsoleWrite($i & @CRLF)
    _MySleep($i * Random(100, 999))
    MsgBox(0,"",$i,1)
    Next

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

    EndFunc ;==>Page

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

    Func info()

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

    MsgBox(0, "", "test", 1)

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

    EndFunc ;==>info

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

    Func _MySleep($iMSec)
    Local $nMsg, $dt = TimerInit()
    Do
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Loopinfo
    info()
    EndSwitch
    Sleep(10)
    Until TimerDiff($dt) > $iMSec
    EndFunc ;==>_MySleep

    [/autoit]
  • Loop Problem

    • Ilse
    • 2. November 2011 um 09:30

    Guten Morgen zusammen,

    mußte gestern leider wieder los
    und konnte mich nicht wieder melden.

    @ Alle...Danke für die Hilfe
    und vielen Dank AutoBert für deine Lösung.


    Liebe Grüße
    Ilse ;)

  • Loop Problem

    • Ilse
    • 1. November 2011 um 18:51

    Hallo,

    ich habe ein Problem mit meinem Loop!

    Wie kann man während eines Loop's
    einen Button anklicken.

    Hier mal mein Beispiel

    [autoit]


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

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

    $Form1 = GUICreate("Form1", 438, 89, 192, 132)
    $Loop = GUICtrlCreateButton("Loop-Start", 32, 24, 179, 49)
    $Loopinfo = GUICtrlCreateButton("Info", 240, 24, 179, 49)
    GUISetState(@SW_SHOW)

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

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

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

    Case $Loop
    Page()
    Case $Loopinfo
    info()
    EndSwitch
    WEnd
    Func Page()

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

    For $i = 1 to 10
    MsgBox(0,"",$i,1)
    next

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

    EndFunc

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

    Func info()

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

    MsgBox(0,"","test",1)

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

    EndFunc

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

    ALso, zuerst Loop starten und dann den Info Button klicken.

    Geht leider nicht...

    Liebe Grüße
    Ilse ;)

  • Select Case

    • Ilse
    • 26. Oktober 2011 um 14:53

    Hallo,

    merci für die Hilfe.
    Zum besseren Verständnis, was das Script machen sollte:

    1. Man wählt den Quell-Ordner mit den pdf Dateien
    2. Eine pdf wird mit der Anwendung (Adobe, Foxit...) gestartet und angezeigt. STOP!
    3. (Nun möchte ich entscheiden "wohin" die pdf Datei verschoben wird bzw. nicht verschoben wird!
    4. Danach wird die Anwendung (Adobe...geschlossen) und die nächste pdf gestartet.

    Am besten wäre es wenn links eine TreeView wäre
    und man könnte einfach auf die Zielordner klicken.
    Aber mit TreeView habe ich noch absolut keine Erfahrung.

    Das Problem ist, ich muß sehr viele pdf Dateien
    die alle in einem Ordner liegen auf verschiedene Ordner "verteilen"(verschieben)


    Huh... ?(

    Liebe Grüße
    Ilse ;)


    Das

  • Select Case

    • Ilse
    • 26. Oktober 2011 um 13:28

    Hallo zusammen,

    habe heute leider einige Probleme.

    Wie kann man innerhalb eines Loops
    eine Select Anweisung einfügen?

    Folgendes sollte passieren:
    Der Loop läuft ganz normal durch, aber erst wenn man auf die Schaltfläche klickt, sollte etwas passieren.
    Zum Beispiel FileMove...

    Spoiler anzeigen
    [autoit]


    #include <File.au3>
    #include <array.au3>
    $Form1_1 = GUICreate("PDF", 530, 335, 192, 132)
    $BT1 = GUICtrlCreateButton("BT1", 216, 56, 275, 41)

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

    GUISetState(@SW_SHOW)
    Opt("WinTitleMatchMode", 2)
    Local $sPath, $aFiles, $sText
    $sPath = FileSelectFolder("Bitte Ordner auswählen","",Default,@DocumentsCommonDir)
    If @error Then Exit

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

    GUICtrlSetFont(-1, 11, 800, 0, "MS Sans Serif")

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

    $aFiles = _FileListToArray($sPath,"*.pdf",1) ; Dateien in ein Array lesen
    If @error Then Exit MsgBox(16,"Error","No files found")
    ;_ArrayDisplay($aFiles, "alle Dateien")

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

    ;hier beginnt der Loop
    For $i = 1 To UBound($aFiles)-1

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

    ShellExecute($sPath & "\"&$aFiles[$i]);Programm startet mit File

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

    Select
    Case $BT1
    MsgBox(0,$aFiles[$i],"tu was mit dieser Datei")
    EndSelect
    Next

    [/autoit]

    ich komme da leider nicht ans Ziel.

    Grüße
    Ilse ;)

  • FileClose

    • Ilse
    • 26. Oktober 2011 um 11:56

    Hallo,

    Ich muss mich leider wieder melden.
    Irgendwie arbeitet die Loop-Funktion nicht korrekt.

    die erste Datei wird angezeigt, das Fenster wird ermittelt
    und auch korrekt geschlossen.
    Die nächste Datei sollte dann starten.
    Das geht aber nicht.

    Hier nochmal der abgeänderte Code.

    [autoit]


    #include <File.au3>
    #include <array.au3>

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

    Opt("WinTitleMatchMode", 2)
    Local $sPath, $aFiles, $sText
    $sPath = FileSelectFolder("Bitte Ordner auswählen","",Default,@DocumentsCommonDir)
    If @error Then Exit

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

    $aFiles = _FileListToArray($sPath,"*.pdf",1) ; Dateien in ein Array lesen
    If @error Then Exit MsgBox(16,"Error","No files found")
    ;_ArrayDisplay($aFiles, "alle Dateien")
    For $i = 1 To UBound($aFiles)-1

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

    ShellExecute($sPath & "\"&$aFiles[$i]);Programm startet

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

    Local $hndlWin = WinWait($aFiles[$i],30)
    MSGBox(4096,$hndlWin,$aFiles[$i])
    Sleep(3000)
    WinClose($hndlWin)
    Next

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


    Grüße
    Ilse ;)

  • FileselectFolder

    • Ilse
    • 26. Oktober 2011 um 10:50

    Hallo,
    merci für die Hilfe...Es klappt!

    [autoit]


    Local $sPath, $aFiles, $sText

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

    $sPath = FileSelectFolder("Bitte Ordner auswählen","",Default,@DocumentsCommonDir)
    MsgBox(0,"",$sPath)
    $folder = StringTrimLeft($sPath, StringInStr($sPath, '\', 1, -1))

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

    MsgBox(0,"",$folder)

    [/autoit]
    Zitat


    Welchen Sinn macht es FileSelectFolder zu nutzen, wenn du den Pfad verwirfst?

    Klar, Ich brauche die Pade natürlich auch,
    Übergebe aber nur den Namen des Ordners an einem Button.(Übersichtlicher)

    GUICtrlSetData($bt1,$folder)

    Grüße
    Ilse ;)

  • FileselectFolder

    • Ilse
    • 26. Oktober 2011 um 10:18

    Hallo,

    Wie kann man mit FileselectFolder
    nur den Ordnernamen auslesen?

    Ich erhalte immer den kompletten Pfad.

    [autoit]


    $sPath = FileSelectFolder("Bitte Ordner auswählen","",Default,@DocumentsCommonDir)

    [/autoit]

    also statt
    C:\test\meine Daten

    nur meine Daten


    Grüße
    Ilse ;)

  • FileClose

    • Ilse
    • 26. Oktober 2011 um 10:12

    Hallo,

    das mit WinClose ist mir soweit klar.
    ABER

    Wenn die pdf mit Acrobat geöffnet wird, oder einem anderen pdf Programm ???
    dann kann ich doch mit Winclose nicht arbeiten.

    Es muß doch zuerst das ? Fenster ermittelt werden.

    Und das ist das Problem. Wie kann man das machen?

    Liebe Grüße
    Ilse ;)

  • Tidy ?

    • Ilse
    • 26. Oktober 2011 um 08:42

    Hallo,

    Ich konnte mich erst leider heute Morgen wieder werden.
    Nachdem Scite geschlossen wurde, war der Fehler verschwunden.

    Vielen Dank an alle

    Liebe Grüße
    Ilse ;)

  • FileClose

    • Ilse
    • 26. Oktober 2011 um 08:13

    Hallo zusammen,

    Ich habe folgendes Problem mit dem Lesen von Dateien
    das Skript liest alle PDF Dateien nacheinander.
    Die Datei soll angezeigt werden und anschließend wieder geschlossen werden.

    Das geht leider nicht, da für jede Datei ein neues Fenster geöffnet wird
    ich habe schon mit FileOpen und FileClose probiert, leider ohne Erfolg.

    Spoiler anzeigen
    [autoit]


    #include <File.au3>
    #include <array.au3>

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

    Local $sPath, $aFiles, $sText
    $sPath = FileSelectFolder("Bitte Ordner auswählen","",Default,@DocumentsCommonDir)
    If @error Then Exit

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

    $aFiles = _FileListToArray($sPath,"*.pdf",1) ; Dateien in ein Array lesen
    If @error Then Exit MsgBox(16,"Error","No files found")
    ;_ArrayDisplay($aFiles, "alle Dateien")
    For $i = 1 To UBound($aFiles)-1
    ;$handle = FileOpen($aFiles, 0)
    ;ShellExecute(@ScriptDir & "\"&$aFiles[$i])
    ShellExecute($sPath & "\"&$aFiles[$i])
    MSGBox(4096,$aFiles,$aFiles[$i])
    ;FileClose($aFiles[$i])

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

    Next

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

    Liebe Grüße
    Ilse ;)

  • Tidy ?

    • Ilse
    • 25. Oktober 2011 um 17:41

    Huh...

    ist gerade wieder passiert!

    Hier der Screenshot!

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Habe Win7

    Grüße
    Ilse ;)

    Dateien

    Autoit.JPG 40,72 kB – 0 Downloads
  • Tidy ?

    • Ilse
    • 25. Oktober 2011 um 17:34

    Hallo,

    habe alles umbenannt, Fenster geschlossen, neu gestartet...
    Alles verhält sich wieder normal.

    Ich schliesse mal den Thread. Hoffe es passiert nicht wieder.
    Wenn ja, dann kann ich ein Screenshot machen.

    Liebe Grüße
    Ilse ;)

  • Tidy ?

    • Ilse
    • 25. Oktober 2011 um 16:51

    Hallo,

    ich habe folgendes Problem.
    Ich habe eine Exe gemacht. Einfach Script kompiliert.

    Wenn es aber gestartet wird, kommt ein DOS Fenster Tidy.

    Wieso ???

    Grüße
    ILse

  • Click im Fenster

    • Ilse
    • 25. Oktober 2011 um 14:34

    Hallo Chip,

    hatte ich auch probiert, geht leider nicht!

    Also folgendes passiert:

    Wenn das Fenster maximiert ist, dann stimmen die Coordinaten nicht"!
    Wird das Fenster angepasst, also z.B. 400x400 dann stimmt's!
    Ich kann es auch verschieben, der Klick stimmt.

    Maximiere ich aber das Fenster, dann ist der Klick nicht korrekt!

    Seltsam...

    Grüße
    Ilse ;)

  • Click im Fenster

    • Ilse
    • 25. Oktober 2011 um 14:15

    Hallo,

    klappt leider doch nicht!

    Wenn ich ein Webfenster öffne, dann stimmen irgendwie die
    Coordinaten nicht!

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

    Opt("MouseCoordMode", 0)

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

    #region --- Au3Recorder generated code Start ---
    _WinWaitActivate("Google","")
    ;MouseClick("left",218,48,1)
    MouseClick("left",160,323,1)

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

    #region --- Internal functions Au3Recorder Start ---
    Func _WinWaitActivate($title,$text,$timeout=0)
    WinWait($title,$text,$timeout)
    If Not WinActive($title,$text) Then WinActivate($title,$text)
    WinWaitActive($title,$text,$timeout)
    EndFunc
    #endregion --- Internal functions Au3Recorder End ---

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

    #endregion --- Au3Recorder generated code End ---
    #endregion --- Au3Recorder generated code End ---

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • Click im Fenster

    • Ilse
    • 25. Oktober 2011 um 14:02

    Hallo Chip,

    merci, hat irgendwie funktioniert!
    Opt("MouseCoordMode", 0)

    Grüße
    Ilse ;)

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™