VLC über AutoIt Beenden

  • Hallo Leute habe versucht aus einem AutoIt Script VLC zu beenden.
    Ich bekomme es nicht hin.

    [autoit]


    send ("^{Q}")

    [/autoit]


    VLC reagiert nicht ein mal :(

    Einmal editiert, zuletzt von micneu (21. April 2009 um 16:29)

  • Hi,
    wenn du es über Send versuchen willst, muß es so heißen

    [autoit]

    Send("^q")

    [/autoit]

    Jedoch würde ich es eher über Winactivate, Winclose, ... probieren :)

  • danke, das hat bei mir nicht geklappt.....
    habe jetzt noch das

    [autoit]


    WinClose("[QWidget]")

    [/autoit]


    versucht... ich muß dazu sagen ich habe vlc über eine batch datei geöffnet.

    [autoit]

    %programfiles%\videolan\vlc\vlc.exe filme\WP_KAMTSCHATKA.m4v filme\AQUARIUM.m4v filme\PLASMA_AQUARIUM.m4v filme\PLASMA_AQUARIUM_2.m4v filme\PLASMA_AQUARIUM_3.m4v filme\PLASMA_AQUARIUM_4.m4v --noaudio --fullscreen --random --logo-file "C:\mum_240209.png" --logo-x 50 --logo-y 50 --logo-transparency 255

    [/autoit]
  • Hi Leute,
    also bei mir funktioniert das so.
    Ob es per Batch gestartet wurde ist egal. Wichtig ist das das VLC Fenster offen ist.

    Spoiler anzeigen
    [autoit]

    WinWait("[TITLE:VLC media player; CLASS:QWidget]")
    WinActivate("[TITLE:VLC media player; CLASS:QWidget]")
    sleep(20)
    Send("^q")

    [/autoit]

    MfG
    Der_Doc

  • Also hier setze ich die variablen:
    hier die ini datei in der ich die variablen speicher:

    [autoit]


    [START_ZEIT]
    #Die anzahl Entspricht 1 Stunde, 1 Minute oder 1 Sekunde

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

    # ---Mögliche Werte: (Global)
    # Sekunden: zeitvorgabe=1
    # Minuten: zeitvorgabe=60
    # Stunden: zeitvorgabe=3600
    zeitvorgabe=1

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

    [Praesentation]
    # Einstellung Programm 1
    Programm_1=video.cmd
    Programm_1_Name=
    Programm_1_Fenster_1="- VLC media player"
    Programm_1_Fenster_2=
    #Die anzahl Entspricht 1 Stunde, 1 Minute oder 1 Sekunde
    Zeit_Programm_1=30
    Programm_1_PRG_TASTE_ENDE="^q"

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

    #################
    # Einstellung Programm 2
    Programm_2=show.cmd
    Programm_2_Name=PPTVIEW.EXE
    Programm_2_Fenster_1=
    Programm_2_Fenster_2=
    #Die anzahl Entspricht 1 Stunde, 1 Minute oder 1 Sekunde
    Zeit_Programm_2=30
    Programm_2_PRG_TASTE_ENDE="!{F4}"

    [/autoit][autoit]


    $zeitvorgabe = IniRead(@ScriptDir & "\tv_switch.ini", "START_ZEIT", "zeitvorgabe", "0")
    $Programm_1 = IniRead(@ScriptDir & "\tv_switch.ini", "Praesentation", "Programm_1", "0")
    $Programm_1_Name = IniRead(@ScriptDir & "\tv_switch.ini", "Praesentation", "Programm_1_Name", "0")
    $Programm_1_Fenster_1 = IniRead(@ScriptDir & "\tv_switch.ini", "Praesentation", "Programm_1_Fenster_1", "0")
    $Programm_1_Fenster_2 = IniRead(@ScriptDir & "\tv_switch.ini", "Praesentation", "Programm_1_Fenster_2", "0")
    $Zeit_Programm_1 = IniRead(@ScriptDir & "\tv_switch.ini", "Praesentation", "Zeit_Programm_1", "0")
    $Programm_1_PRG_TASTE_ENDE = IniRead(@ScriptDir & "\tv_switch.ini", "Praesentation", "PProgramm_1_PRG_TASTE_ENDE", "0")
    ;### Programm 2
    $Programm_2 = IniRead(@ScriptDir & "\tv_switch.ini", "Praesentation", "Programm_2", "0")
    $Programm_2_Name = IniRead(@ScriptDir & "\tv_switch.ini", "Praesentation", "Programm_2_Name", "0")
    $Programm_2_Fenster_1 = IniRead(@ScriptDir & "\tv_switch.ini", "Praesentation", "Programm_2_Fenster_1", "0")
    $Programm_2_Fenster_2 = IniRead(@ScriptDir & "\tv_switch.ini", "Praesentation", "Programm_2_Fenster_2", "0")
    $Zeit_Programm_2 = IniRead(@ScriptDir & "\tv_switch.ini", "Praesentation", "Zeit_Programm_2", "0")
    $Programm_2_PRG_TASTE_ENDE = IniRead(@ScriptDir & "\tv_switch.ini", "Praesentation", "Programm_2_PRG_TASTE_ENDE", "0")

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


    und hier will ich die Programme beenden:

    [autoit]


    Func _PrgEnde()
    Sleep(100)
    WinSetState($Programm_1_Fenster_1, "", @SW_RESTORE)
    ;WinSetState($Programm_1_Fenster_2, "", @SW_RESTORE)
    send ($Programm_1_PRG_TASTE_ENDE) ;Taste ALT und F4
    WinSetState($Programm_2_Fenster_1, "", @SW_RESTORE)
    WinSetState($Programm_2_Fenster_2, "", @SW_RESTORE)
    send ($Programm_2_PRG_TASTE_ENDE) ;Taste ALT und F4
    WinClose("[QWidget]")
    $PID = ProcessExists($Programm_2_Name) ; Will return the PID or 0 if the process isn't found.
    If $PID Then ProcessClose($PID)
    MsgBox(64, .............

    [/autoit]
    • Offizieller Beitrag

    Minimal sicherer (ungetestet):

    Spoiler anzeigen
    [autoit]

    WinWait("[TITLE:VLC media player; CLASS:QWidget]")
    WinActivate("[TITLE:VLC media player; CLASS:QWidget]")
    WinWaitActive("[TITLE:VLC media player; CLASS:QWidget]")
    Send("^q")

    [/autoit]

    Edit: WinWaitActive, nicht WinWaitActivate, danke Der_Doc ;).

    peethebee

  • Du hast hier
    "$Programm_1_PRG_TASTE_ENDE = IniRead(@ScriptDir & "\tv_switch.ini", "Praesentation", "PProgramm_1_PRG_TASTE_ENDE", "0")"
    ein P zuviel :rofl:

  • Ok dann hier eine kleine aber entscheidende Änderung
    Einfach den "Opt("WinTitleMatchMode", 2)" auf 2 setzten und schon geht es trotzdem siehe Hilfe

    Spoiler anzeigen
    Code
    WinTitleMatchMode
    Alters the method that is used to match window titles during search operations.
    1 = Match the title from the start (default)
    2 = Match any substring in the title
    3 = Exact title match
    4 = Advanced mode, see Window Titles & Text (Advanced)
    -1 to -4 = force lower case match according to other type of match.

    und @Pee die Funktion die du meinst heisst bestimmt WinWaitActive :D

    MfG
    Der_Doc

  • [autoit]

    ProcessClose ("vlc.exe")

    [/autoit]


    Wäre doch möglich oder? ^^

    Edit:
    Oh ^^

    Sorry jam00 hat es schon geschrieben -.-