AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Laptop spezial Tasten
Thema durchsuchen
Ansicht
Themen-Optionen

Laptop spezial Tasten

Ein Thema von arbu man · begonnen am 4. Jan 2007 · letzter Beitrag vom 7. Jan 2007
Antwort Antwort
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#1

Laptop spezial Tasten

  Alt 4. Jan 2007, 12:45
Hi,

ich habe ein Leptop mit spezial Tasten (Lied zurüch/vor, Stop, Pause) nun sind diese Tasten auch erreichbar wenn die Klappe zu ist.
Nun würde ich diese Tasten gerne für Aktionen in meinen Programm verwenden, leider weiss ich nicht wie ich auf den Druck dieser Tasten reagieren soll ? Das OnKeyDownEvent wird nicht ausgelöst.
Hat bejemand eine Idee wie man den Druck dieser Tasten reagieren kann ?

mfg, Björn
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#2

Re: Laptop spezial Tasten

  Alt 4. Jan 2007, 12:51
Das duerften die Multimedia-Tasten sein. WM_APPCOMMAND ist die Message, die diese Tasten meldet.
Die JVCL enthaelt eine Komponente dazu (JvAppCommand). Man braucht aber die JCL und JVCL aus dem SVN. Download von http://jcl.sf.net/daily und http://jvcl.sf.net/daily
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#3

Re: Laptop spezial Tasten

  Alt 7. Jan 2007, 13:49
Danke für die Info, ich frage nun diese Message in meiner Form ab, Aber leider erscheint diese Message nie, ich denke mal, mein Laptop macht etwas andere nur nicht die Message WM_APPCOMMAND senden. Oder sehe ich das Falsch.

Delphi-Quellcode:
type
  TForm1 = class(TForm)
  protected
    procedure MediaKey (var aMSG: tMessage); message WM_APPCOMMAND;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
...
{ TForm1 }

procedure TForm1.MediaKey(var aMSG: tMessage);
begin
  showmessage('');
end;
mfg, Björn
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#4

Re: Laptop spezial Tasten

  Alt 7. Jan 2007, 14:03
Probier noch die Komponente aus der JVCL. Es koennte sein dass die Message nicht bei der Form ankommt.
Falls du eine USB-Multimediatastatur zur Hand hast, dann an den Laptop anstecken und sehen ob sie WM_APPCOMMAND ausloest.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Laptop spezial Tasten

  Alt 7. Jan 2007, 14:04
Mit der Komponente klappts
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: Laptop spezial Tasten

  Alt 7. Jan 2007, 14:13
Zur Erleuchtung aller hier noch der Mechanismus den Windows mit den Multimediatasten implementiert.
Erstens sind das (besonders bei USB-Tastaturen) gar keine Tasten der Tastatur. Das USB-Geraet meldet sich als mehrere Geraete, wobei die Multimediatasten in einem eigenen Geraet untergebracht sind.
Es laeuft ein System-Service, der dieses Geraet liest und WM_APPCOMMAND an alle Applikatinoen schickt. Meldet sich keine Applikation und will die Multimediatasten fuer sich haben, so fuehrt der Service die zugewiesene Standardaktion aus.
Offensichtlich geht die Message zwar an das Hauptfenster, wird aber nicht an die Unterfenster weitergereicht. Da bei Delphiprogrammen das Hauptfenster verborgen ist, gelangt die Message nicht an die Forms, die Unterfenster sind.

Alles in allem eine wirklich schlimme Kruecke, die Microsoft da implementiert hat.
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Laptop spezial Tasten

  Alt 7. Jan 2007, 14:42
@Robert: Hast du da genauere Informationen zu? Ich hatte da mal Probleme bei meinem MP3-Player, da dieser Service scheinbar nicht auf jedem System läuft, so dass die Tastendrücke manchmal nicht registriert werden, wenn meine Anwendung nicht den Fokus hat.
Ich habe dann WM_APPCOMMAND gehooked, was natürlich schiefläuft, wenn dieser Service doch läuft, da dann jeder Tastendruck mehrfach bei meiner Anwendung ankommt. Gelöst habe ich das so, dass beim ersten registrierten WM_APPCOMMAND ein kleiner interaktiver Test durchgeführt wird, ob dieser Service läuft oder nicht und dementsprechend ab dann der Hook installiert wird oder nicht.

Optimal ist das nicht. Wenn du da Näheres zu weißt, würde mich das brennend interessieren!
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#8

Re: Laptop spezial Tasten

  Alt 7. Jan 2007, 15:17
Der Service sollte eigentlich immer laufen. Er wird bei Win 2000 und XP immer eingerichtet. Man kann ihn natuerlich ohne Schaden fuer das System beenden. Man verliert nur die Aktionen fuer die Multimediatasten. Da koennte der eine oder andere sicherheitsfanatische Benutzer den Service abgestellt haben.
Ich habe mir nochmal die MSDN-Hilfe zu WM_APPCOMMAND durchgelesen und es scheint noch komplizierter zu sein. Dort wird noch ein Shell Hook erwaehnt.
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Laptop spezial Tasten

  Alt 7. Jan 2007, 15:35
Naja, ich hab ne Media-Tastatur von Logitech, da läuft ein "iTouch" im Hintergrund, was "diese Tasten verteilt". beendet man das, kommen die Tasten nur am aktiven Fenster an. Der Shellhook ist wahrscheinlich in etwa das, was ich gemacht habe - nur verträgt der sich nicht mit iTouch, da das scheinbar tiefer ansetzt als ein solcher Hook, was dann diesen komischen Effekt verursacht.

Ob das ein Sicherheitsfanatiker oder einer mit nem seltsamen System war, weiß ich nicht.

Musst jetzt aber nicht groß anfangen, da was zu suchen. Ich bin nur hellhörig geworden, da du scheinbar etwas davon verstehst - da wollte ich mal nachfragen . Generell funktioniert mein System ja. Und mein "Test" beschränkt sich auf einmal "Play" drücken und Klick auf OK. Das einmalig ist noch zu verkraften, denke ich
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#10

Re: Laptop spezial Tasten

  Alt 7. Jan 2007, 17:18
Was diese iTouch Software (und vergleichbare) anrichten ist noch schlimmer.
Es wird der HID Treiber fuer die Tastatur (oder Maus) ersetzt. Der Treiber hat zusaetzlich einen Seitenausgang. Der wird von der Tray-Applikation (iTouch) geoeffnet. Darueber kann iTouch dem Treiber sagen wo die Tastendruecke hingehen sollen. Nun kann iTouch beliebige Aktionen der Taste zuordnen.
Vermutlich wird sie den WM_APPCOMMAND Mechanismus selber implementieren.
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:05 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