AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Einheitliche MediaPlayer Steuerung

Ein Thema von gibb · begonnen am 25. Jan 2008 · letzter Beitrag vom 29. Jan 2008
Antwort Antwort
Seite 2 von 3     12 3      
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#11

Re: Einheitliche MediaPlayer Steuerung

  Alt 28. Jan 2008, 15:50
Zitat von bitsetter:
Hallo,

kann ja sein, dass WM_KEYDOWN und WM_KEYUP nicht vom VCL Player ausgewertet wird.
Hast du schon mal versucht den VCL Player mit windows.SetForegroundWindow() nach vorne zu holen und mit windows.keybd_event() Tastendrücke zu simmulieren?
Kann jetzt aber nicht sagen, ob es mit deiner Fernsteuerung auch funktioniert.

Falls du den VCL Player dann doch per Postmessage steuern möchtest, habe ich mal von den MenuItems die IDs geholt siehe Bild. Damit machst du das gleiche, als wenn du mit der Maus im Hauptmenü rumklickst.
Entschuldige, ich habe erst vorhin gesehen das ich dich hier so grausam übergangen habe...

Könnte mir jemand einen gefallen machen ? ich habe hier nur win2k und zuhause kein D2007 und ich müsste wissen wie der korrekte klassen &Fenster Name des Windows Media Player heisst damit ich ihn in den vordergrund setzen kann...

danke falls jemand schnell die zeit hat und ansonsten schaff ich das auch irgendwie zuhause
LG Severin
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Einheitliche MediaPlayer Steuerung

  Alt 28. Jan 2008, 16:17
Zitat von gibb:
Ob ich mir beide wege offen behalten will oder ob ich umstellen will so das die applikation immer wieder die fenster in den Vordergrund rückt oder wie das das ganze genau ablaufen soll...
Ich würde die Fenster nur nach vorne holen wenn es unbedingt notwendig ist, da es sonst nerven kann, wenn irgend ein Fenster sich in den Vordergrund drängt.

Zitat von gibb:
Könnte mir jemand einen gefallen machen ? ich habe hier nur win2k und zuhause kein D2007 und ich müsste wissen wie der korrekte klassen &Fenster Name des Windows Media Player heisst damit ich ihn in den vordergrund setzen kann...

danke falls jemand schnell die zeit hat und ansonsten schaff ich das auch irgendwie zuhause
LG Severin
Bei mir geht es so: FindWindow('WMPlayerApp', 'Windows Media Player')
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Einheitliche MediaPlayer Steuerung

  Alt 28. Jan 2008, 16:32
Also, ich weiß ja nicht, wie du das Handle vom VLC ermittelst, aber bei mir funktioniert es so problemlos:
Delphi-Quellcode:
var
  wnd: HWND;
begin
  wnd := FindWindow('VLC DirectX', 'VLC (hardware YUV overlay DirectX output)');

  if wnd <> 0 then
  begin
    PostMessage(WND, WM_KEYDOWN, VK_SPACE, 0);
    PostMessage(WND, WM_KEYUP, VK_SPACE, 0);
  end;
end;
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  Mit Zitat antworten Zitat
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#14

Re: Einheitliche MediaPlayer Steuerung

  Alt 28. Jan 2008, 16:40
Zitat von bitsetter:
Zitat von gibb:
Ob ich mir beide wege offen behalten will oder ob ich umstellen will so das die applikation immer wieder die fenster in den Vordergrund rückt oder wie das das ganze genau ablaufen soll...
Ich würde die Fenster nur nach vorne holen wenn es unbedingt notwendig ist, da es sonst nerven kann, wenn irgend ein Fenster sich in den Vordergrund drängt.

Ja das dachte ich mir auch... VLC wird ja meistens zum Video schauen benutzt daher ist das nicht weiter tragisch. Und der MediaPlayer will einfach nicht so wie ich will daher soll er nun in den vordergrund bis ich herausgefunden habe wie ich das anders machen kann.

Zitat von gibb:
Könnte mir jemand einen gefallen machen ? ich habe hier nur win2k und zuhause kein D2007 und ich müsste wissen wie der korrekte klassen &Fenster Name des Windows Media Player heisst damit ich ihn in den vordergrund setzen kann...

danke falls jemand schnell die zeit hat und ansonsten schaff ich das auch irgendwie zuhause
LG Severin
Bei mir geht es so: FindWindow('WMPlayerApp', 'Windows Media Player')
mhmmm komisch... und mit dem handle kannst du auch SetForeGroundWindow ausführen ? weil bei mir hackt das dort immer. resp. ich kriege immer ein False zurück und dann auf wiedersehen und gute nacht nix ist dann mit tastenkeys senden.

(Ich habe einen externen tester also wird bei ihm nix gesendet wobei er mir genau denselben handle angeben hat...)
  Mit Zitat antworten Zitat
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#15

Re: Einheitliche MediaPlayer Steuerung

  Alt 28. Jan 2008, 16:41
Zitat von Hador:
Also, ich weiß ja nicht, wie du das Handle vom VLC ermittelst, aber bei mir funktioniert es so problemlos:
Delphi-Quellcode:
var
  wnd: HWND;
begin
  wnd := FindWindow('VLC DirectX', 'VLC (hardware YUV overlay DirectX output)');

  if wnd <> 0 then
  begin
    PostMessage(WND, WM_KEYDOWN, VK_SPACE, 0);
    PostMessage(WND, WM_KEYUP, VK_SPACE, 0);
  end;
end;
ich mach das so:
FCurrentHandle := FindWindow('wxWindowClassNR','VLC media player');

und das Funktioniert auch VLC ist nun komplett implementiert und da brauch ich nix mehr... ich haue jetzt nur noch auf dem WMP rum bis der auch einigermassen das macht was ich will
  Mit Zitat antworten Zitat
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#16

Re: Einheitliche MediaPlayer Steuerung

  Alt 29. Jan 2008, 09:33
Weiss jemand ob es möglich ist mit windows.keybd_event() f1 tasten zu drücken ?

weil es ist nämlich so das ich das gefühl habe das kann nicht funktionieren... jedenfalls nicht so wie ich das mache...

Delphi-Quellcode:
     
 keybd_event(112,0,0,0);
 keybd_event(112,0,KEYEVENTF_KEYUP,0);
oder ist das richtig so ?

lg Severin
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Einheitliche MediaPlayer Steuerung

  Alt 29. Jan 2008, 10:05
Hallo,

in Delphi öffnet sich damit bei mir die Hilfe.
Delphi-Quellcode:
  keybd_event(VK_F1,0,0,0);
  keybd_event(VK_F1,0,KEYEVENTF_KEYUP,0);
Edit: scheint aber das gleiche zu sein.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#18

Re: Einheitliche MediaPlayer Steuerung

  Alt 29. Jan 2008, 10:13
wollte gerade sagen 112 = VK_F1

Mhmmm komisch komisch komisch.... ich kriege das mit dem MediaPlayer einfach nicht zum laufen... der erhält die Kommandos nicht... wobei er immer in den vordergrund gerückt wird. und somit auch die events ausgelöst werden. Hat jemand eine idee woran das liegen könnte ? Ich verstehe langsam die welt nicht mehr...

Lg Severin
  Mit Zitat antworten Zitat
gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#19

Re: Einheitliche MediaPlayer Steuerung

  Alt 29. Jan 2008, 10:33
kann mir jemand volgenden code mit dem windows media player testen =? bei mir will das einfach nicht funktionieren...

Delphi-Quellcode:
  
  FCurrentHandle := FindWindow('WMPlayerApp', 'Windows Media Player');

  if SetForeGroundWindow(FCurrentHandle) then
  begin
    keybd_event(112,0,0,0);
    keybd_event(112,0,KEYEVENTF_KEYUP,0);
  end;
passiert da was bei euch ? sollte die hilfe öffnen...

LG Severin...
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#20

Re: Einheitliche MediaPlayer Steuerung

  Alt 29. Jan 2008, 11:12
Bei mir erscheint die Hilfe vom Mediaplayer, habe allerdings noch Version 8 drauf.
Wird denn
Delphi-Quellcode:
  keybd_event(112,0,0,0);
  keybd_event(112,0,KEYEVENTF_KEYUP,0);
überhaupt ausgeführt. Vielleicht wäre es auch besser , wenn du dem Fenster noch einen kurzen Augenblick Zeit geben würdest nach vorne zu kommen.
Zitat von gibb:
wollte gerade sagen 112 = VK_F1
Man sollte trotzdem die vorgegebenen Konstanten benutzen, auch wenn es jetzt so geht, da sich der Wert später eventuell auch mal ändern kann.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz