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

Beiträge von waro0815

  • Array Problem

    • waro0815
    • 5. März 2011 um 14:32

    Hallo,

    ich versuche die Rückgabe die von der Windows "Systeminfo" zurückgegeben wird in ein 2D Array zu packen für spätere Weiterverwendung.

    Da ich die Werte gerne getrennt haben will habe ich versucht das Ergebnis von StdoutRead erst in en 1D Array zu packen und dann im 2ten Durchgang Anhand des Doppelpunktes das ganze nochmal aufzusplitten.

    in Zeile 22 bekomme ich leider nur die Fehlermeldung "Array variable has incorrect number of Subscripts or sunscript dimension range exceeded"

    [autoit]


    $aErg[$i - 1][1] = $aItem[1]
    $aErg[$i - 1][1] = ^Error

    [/autoit]

    Hier mal mein bisheriger Versuch

    [autoit]

    #include <ArrayMore.au3>

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

    Dim $rueckgabe, $pid, $aStr

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

    $pid = Run(@ComSpec & " /c systeminfo", "", @SW_HIDE, 6)

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

    While 1
    $rueckgabe &= StdoutRead($pid)
    If @error Then ExitLoop
    WEnd

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

    $aStr = StringSplit($rueckgabe, @CRLF, 1)

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

    _Array2DEmptyDel($aStr)
    _ArrayDisplay($aStr, "Ohne Leerzeilen")

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

    Dim $aErg[$aStr[0]][2]
    For $i = 1 To $aStr[0]
    $aItem = StringSplit($aStr[$i], ":", 1 + 2)
    $aErg[$i - 1][0] = $aItem[0]
    $aErg[$i - 1][1] = $aItem[1]
    Next
    _ArrayDisplay($aErg)

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

    Gruß Waro

  • While schleife verlassen

    • waro0815
    • 1. März 2011 um 13:46

    vielen Dank für die Antworten.
    Ich versuche im Moment mein Glück mit OnEvent, mal schauen wo es mich hinbringt :)

    OK der Versuch war da, die korrekte Umsetzung hackt noch massiv.
    Soweit funktioniert nun zwar wieder alles, aber eben mein Hauptproblem, das das gewählte Video nach Ablauf des Intervals erneut gestartet wird, aber auch die Möglichkeit das Program zu beenden gegeben ist, bekomme ich nicht hin.

    Fürchte das liegt aber eher daran das ich die OnEvent Geschichte nicht so ganz auf die Reihe bekomme.

    [autoit]

    #include <GUIConstantsEx.au3>

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

    Opt('MustDeclareVars', 1)

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

    Local $form_video, $lbl_video, $lbl_spielzeit, $input_video, $input_zeit, $btn_play, $btn_src_video, $btn_exit
    Local $getvideo, $videoplay
    Local $vlc = @ProgramFilesDir & "\vlc\vlc.exe"

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

    Video_Gui()

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

    Func Video_Gui()

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

    Opt("GUICoordMode", 1)
    Opt("GUIResizeMode", 1)
    Opt("GUIOnEventMode", 1)

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

    $form_video = GUICreate("Video Player", 474, 164, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")

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

    $lbl_video = GUICtrlCreateLabel("Video:", 16, 19, 40, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $input_video = GUICtrlCreateInput("", 56, 16, 297, 21)
    $btn_src_video = GUICtrlCreateButton("Öffne Video", 360, 15, 97, 25)
    GUICtrlSetOnEvent(-1, "SRCVideo")
    $lbl_spielzeit = GUICtrlCreateLabel("Pause zwischen dem abspielen: (in Minuten)", 16, 59, 213, 17)
    $input_zeit = GUICtrlCreateInput("30", 234, 56, 41, 21)
    $btn_play = GUICtrlCreateButton("Video starten", 16, 104, 201, 41)
    GUICtrlSetOnEvent(-1, "PlayPressed")
    $btn_exit = GUICtrlCreateButton("Programm schliessen", 256, 104, 201, 41)
    GUICtrlSetOnEvent(-1, "CancelPressed")

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

    GUISetState(@SW_SHOW)

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

    ; Just idle around
    While 1
    Sleep(10)
    WEnd

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

    EndFunc ;End Video_Gui

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

    Func SRCVideo()
    $getvideo = FileOpenDialog("Video Auswählen", "S:\SALES\Admin Center\EMPFANG\MONITOR1", "ALL (*.*)")

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

    If @error Then
    MsgBox(16,"Fehler","Keine Datei ausgewählt")
    EndIf

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

    GUICtrlSetData($input_video, $getvideo)
    EndFunc

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

    Func PlayPressed()
    Global $video = GUICtrlRead($input_video)
    Global $intervall = (GUICtrlRead($input_zeit)*60)*1000

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

    _video()
    EndFunc ;==>PlayPressed

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

    Func _video()
    $videoplay = RunWait('"' & $vlc & '"' & " " & '"' & $video & '"')
    ProcessWaitClose($videoplay)
    sleep($intervall)
    EndFunc

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

    Func CancelPressed()
    Exit
    EndFunc ;==>CancelPressed

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

    Func SpecialEvents()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    MsgBox(0, "Close Pressed", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Exit

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

    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    MsgBox(0, "Window Minimized", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)

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

    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    MsgBox(0, "Window Restored", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)

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

    EndSelect
    EndFunc ;==>SpecialEvents

    [/autoit][autoit][/autoit][autoit][/autoit]
  • While schleife verlassen

    • waro0815
    • 1. März 2011 um 09:34

    Hallo zusammen,

    ich bastle im Moment an einer kleinen GUI womit man ein Video aufrufen kann und das gleichzeitig eine Intervallvorgabe hat wann das Video wiederholt wird.

    Soweit so gut klappt auch alles, video wird abgespielt, Intervall funktioniert usw.
    Ob es natürlich der sauberste Weg ist kann ich als Autoit anfänger nicht sagen :)

    Mein Problem ist nun aber sobald meine Funktion bzw der sleep aktiv ist funktioniert der "Verlassen" Button nicht.

    [autoit]

    Dim $vlc = @ProgramFilesDir & "\vlc\vlc.exe"

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

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

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

    $form_video = GUICreate("Video Player", 474, 164, -1, -1)
    $lbl_video = GUICtrlCreateLabel("Video:", 16, 19, 40, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $input_video = GUICtrlCreateInput("", 56, 16, 297, 21)
    $btn_src_video = GUICtrlCreateButton("Öffne Video", 360, 15, 97, 25, $WS_GROUP)
    $lbl_spielzeit = GUICtrlCreateLabel("Pause zwischen dem abspielen: (in Minuten)", 16, 59, 213, 17)
    $input_zeit = GUICtrlCreateInput("30", 234, 56, 41, 21)
    $btn_play = GUICtrlCreateButton("Video starten", 16, 104, 201, 41, $WS_GROUP)
    $btn_exit = GUICtrlCreateButton("Programm schliessen", 256, 104, 201, 41, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn_exit
    Exit
    Case $btn_src_video
    $getvideo = FileOpenDialog("Video Auswählen", "S:\SALES\Admin Center\EMPFANG\MONITOR1", "ALL (*.*)")

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

    If @error Then
    MsgBox(16,"Fehler","Keine Datei ausgewählt")
    EndIf

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

    GUICtrlSetData($input_video, $getvideo)
    Case $btn_play
    Global $video = GUICtrlRead($input_video)
    Global $intervall = (GUICtrlRead($input_zeit)*60)*1000

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

    _video()

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

    EndSwitch
    WEnd

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

    Func _video()
    $videoplay = RunWait('"' & $vlc & '"' & " " & '"' & $video & '"')
    ProcessWaitClose($videoplay)
    sleep($intervall)
    _video()
    EndFunc

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

    Vielen Dank schonmal
    Gruß Waro

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™