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