Hallo Leute habe versucht aus einem AutoIt Script VLC zu beenden.
Ich bekomme es nicht hin.
send ("^{Q}")
VLC reagiert nicht ein mal
Hallo Leute habe versucht aus einem AutoIt Script VLC zu beenden.
Ich bekomme es nicht hin.
send ("^{Q}")
VLC reagiert nicht ein mal
Hi,
wenn du es über Send versuchen willst, muß es so heißen
Send("^q")
[/autoit]Jedoch würde ich es eher über Winactivate, Winclose, ... probieren
danke, das hat bei mir nicht geklappt.....
habe jetzt noch das
WinClose("[QWidget]")
versucht... ich muß dazu sagen ich habe vlc über eine batch datei geöffnet.
%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]Hast du auch vorher das VLC-Fenster aktiviert?
Sonst klappts nämlich nicht
Hi Leute,
also bei mir funktioniert das so.
Ob es per Batch gestartet wurde ist egal. Wichtig ist das das VLC Fenster offen ist.
WinWait("[TITLE:VLC media player; CLASS:QWidget]")
WinActivate("[TITLE:VLC media player; CLASS:QWidget]")
sleep(20)
Send("^q")
MfG
Der_Doc
Also hier setze ich die variablen:
hier die ini datei in der ich die variablen speicher:
[START_ZEIT]
#Die anzahl Entspricht 1 Stunde, 1 Minute oder 1 Sekunde
# ---Mögliche Werte: (Global)
# Sekunden: zeitvorgabe=1
# Minuten: zeitvorgabe=60
# Stunden: zeitvorgabe=3600
zeitvorgabe=1
[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"
#################
# 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}"
$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")
und hier will ich die Programme beenden:
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, .............
Minimal sicherer (ungetestet):
WinWait("[TITLE:VLC media player; CLASS:QWidget]")
WinActivate("[TITLE:VLC media player; CLASS:QWidget]")
WinWaitActive("[TITLE:VLC media player; CLASS:QWidget]")
Send("^q")
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
Ich verstehe nur leider nicht wieso du unsere Vorschläge noch nicht eingebaut hast?
Das mit dem "P" kann ja mal passieren.
MfG
Der_Doc
Der VLC ändert doch immer den Titel, jenachdem was man für eine Datei abspielt, warumm nimst du nicht einfach
[autoit]ProcessClose ("vlc.exe")
[/autoit]wollt ich auch grad schreiben Jam00
Ok dann hier eine kleine aber entscheidende Änderung
Einfach den "Opt("WinTitleMatchMode", 2)" auf 2 setzten und schon geht es trotzdem siehe Hilfe
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
MfG
Der_Doc
Danke hat geklappt... hat nur an meinem schreibfehler gelegen.....
Dafür sind wir doch da.
MfG
Der_Doc
Schreibfehler sind die Besten fehler die man machen kann, die sind so einfach zu lösen
ProcessClose ("vlc.exe")
[/autoit]Wäre doch möglich oder?
Edit:
Oh
Sorry jam00 hat es schon geschrieben -.-