ein frohes Fest, wollte mir schnell mal eine Small Mediacenter programmieren!
Nun wie im Codec seht läuft es ja!
Wenn ich jedoch den Windows Media Player über meine Fernbedienung + ESC-Taste beenden möchte, habe ich keine Ahnung wie ich das sende!
PS: Habe Code noch lesbarer gemacht!
Code: Alles auswählen
; Purebasic Small MediaCenter Bedienung
; Taste1(Movie), Taste(TV), Taste3(Clips), Taste 4(OFF)
; WIndows Media Player mit Vollbildmodus ... ALT+EINGABETASTE, Beenden ALT+F4
; Bedienung über Fernbedienung Harmony 300
; Es fehlt noch ENTER nach Focus von Button
EnableExplicit
ExamineDesktops()
;-Constanten
Enumeration
#PresentParentWindow
#PresentChildWindow_0
#MovieCenter_01
#MovieCenter_02
#MovieCenter_03
#MovieCenter_04
#Movie
#TastenDruckPfeilTasteLinks
#TastenDruckPfeilTasteRechts
#TastenDruckESC
EndEnumeration
Global MovieDateiname$= "F:\Videos\MyMovies\Test.flv"
OpenWindow(#PresentParentWindow,0,0,DesktopWidth(#PresentParentWindow),DesktopHeight(#PresentParentWindow),"Snipping Test",#PB_Window_BorderLess );#PB_Window_Invisible
ButtonGadget(#MovieCenter_01, 130,300,200,200, "MOVIE")
ButtonGadget(#MovieCenter_02, 430,300,200,200, "TV")
ButtonGadget(#MovieCenter_03, 730,300,200,200,"CLIP")
ButtonGadget(#MovieCenter_04, 1030,300,200,200,"OFF")
AddKeyboardShortcut(#PresentParentWindow, #PB_Shortcut_Left, #TastenDruckPfeilTasteLinks) ; Pfeil Links einschalten
AddKeyboardShortcut(#PresentParentWindow, #PB_Shortcut_Right, #TastenDruckPfeilTasteRechts) ; Pfeil Rechts einschalten
AddKeyboardShortcut(#PresentParentWindow, #PB_Shortcut_Escape, #TastenDruckESC) ; Escape einschalten
Global MediaButtonFocus =1
SetGadgetText(#MovieCenter_01, " >> MOVIE <<")
SetActiveGadget(#MovieCenter_01)
;-REPEAT
Define EventID, lEvent, hWnd, Key.l
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_CloseWindow
End; Sollte "Herunterfahren des PC´s" sein, keine Ahnung wie!!
;- GADGET
Case #PB_Event_Gadget
Select EventGadget()
Case #MovieCenter_01 ; Movie ansehen, Pfad wird vorgegeben
MediaButtonFocus = 1 ; Für Buttonsteuerung per Fernsteuerung
MovieDateiname$ = OpenFileRequester("bla", "bla", "", 0)
; Sende an Windows MediaPlayer ALT+EINGABETASTE
RunProgram("C:\Program Files (x86)\Windows Media Player\wmplayer.exe",Chr(34)+ MovieDateiname$ +Chr(34),"", #PB_Program_Wait|#PB_Program_Open );
; Jetzt mit ALT+F4 Beenden, Problem das Fenster hat nicht den Focus
Case #MovieCenter_02 ; TV
MediaButtonFocus = 2 ; Für Buttonsteuerung per Fernsteuerung
RunProgram("explorer.exe ",Chr(34)+"C:\Program Files (x86)\DVBViewer\dvbviewer.exe"+Chr(34),"");#PB_Program_Wait
Case #MovieCenter_03 ; CLIP sollte über PB Player laufen, funzt aber nicht!!!!!!!!!!!!!!!!
MediaButtonFocus = 3 ; Für Buttonsteuerung per Fernsteuerung
MovieDateiname$ = OpenFileRequester("bla", "bla", "", 0)
; LoadMovie(#Movie, MovieDateiname$) ; Funzt nicht
; PlayMovie(#Movie, WindowID) ; Funzt nicht
; ID = ScreenID(); Funzt nicht
Case #MovieCenter_04 ; OFF
MediaButtonFocus = 4 ; Für Buttonsteuerung per Fernsteuerung
End
EndSelect
Case #PB_Event_Menu ; <<< Ereigniss am Menu
Select EventMenu()
Case #TastenDruckPfeilTasteLinks ; < Tastatur
Debug "PfeilTasteLinks"
If MediaButtonFocus = 1
SetGadgetText(#MovieCenter_01, "MOVIE")
SetGadgetText(#MovieCenter_04, " >> OFF <<")
SetActiveGadget(#MovieCenter_04)
MediaButtonFocus = 4
ElseIf MediaButtonFocus = 4
SetGadgetText(#MovieCenter_04, "OFF")
SetGadgetText(#MovieCenter_03, " >> CLIP <<")
SetActiveGadget(#MovieCenter_03)
MediaButtonFocus = 3
ElseIf MediaButtonFocus = 3
SetGadgetText(#MovieCenter_03, "CLIP")
SetGadgetText(#MovieCenter_02, " >> TV <<")
SetActiveGadget(#MovieCenter_02)
MediaButtonFocus = 2
ElseIf MediaButtonFocus = 2
SetGadgetText(#MovieCenter_02, "TV")
SetGadgetText(#MovieCenter_01, " >> MOVIE <<")
SetActiveGadget(#MovieCenter_01)
MediaButtonFocus = 1
EndIf
Case #TastenDruckPfeilTasteRechts ; > Tastatur
Debug "PfeilTasteRechts"
If MediaButtonFocus = 1
SetGadgetText(#MovieCenter_01, "MOVIE")
SetGadgetText(#MovieCenter_02, " >> TV <<")
SetActiveGadget(#MovieCenter_02)
MediaButtonFocus = 2
ElseIf MediaButtonFocus = 2
SetGadgetText(#MovieCenter_02, "TV")
SetGadgetText(#MovieCenter_03," >> CLIP <<")
SetActiveGadget(#MovieCenter_03)
MediaButtonFocus = 3
ElseIf MediaButtonFocus = 3
SetGadgetText(#MovieCenter_03, "CLIP")
SetGadgetText(#MovieCenter_04, " >> OFF <<")
SetActiveGadget(#MovieCenter_04)
MediaButtonFocus = 4
ElseIf MediaButtonFocus = 4
SetGadgetText(#MovieCenter_04, "OFF")
SetGadgetText(#MovieCenter_01, " >> MOVIE <<")
SetActiveGadget(#MovieCenter_01)
MediaButtonFocus = 1
EndIf
Case #TastenDruckESC
Debug "ESC"
EndSelect
Case #WM_KEYUP ; Fernbedienung
; ; Debug "#KEYUP: " + Str(EventwParam())
Key.l = EventwParam()
Select KEY
Case 13
If MediaButtonFocus = 1
Debug "Movie ENTER"
ElseIf MediaButtonFocus = 2
Debug "TV ENTER"
ElseIf MediaButtonFocus = 3
Debug "Clip ENTER"
ElseIf MediaButtonFocus = 4
Debug "Off ENTER"
EndIf
Case 27 ; ESC => Velindos ENDE
Debug "ESC"
; End
;Das Problem, das Windows hat den Focus
; ????
;Send_Key ALT_F4 < =================================
EndSelect
EndSelect
ForEver