Forum: Win32/Win64 API (native code)
Delphi
by Gausi,
26. Jun 2007
Ich komme bei dem Thema mehr und mehr zu der Ansicht, dass hier jede Hersteller von Tastaturen/Treibern sich da ein eigenes Süppchen zusammenkocht. Bei meiner alten Logitech-Tastatur klappen die Multimediatasten gut ohne Hook im eigenen Programm, auf meinem Thinkpad brauche ich den Hook dafür. Bei der Logitech-Software für die neuen Tastaturen gibts komische Probleme, die ich noch nicht genau...
Forum: Win32/Win64 API (native code)
Delphi
by Gausi,
13. Sep 2006
Ne, ich mach schon nen ShellHook auf WM_APPCOMMAND (vgl. Quellcode im ersten Posting). Funktioniert ja auch soweit, nur kommt der Hook mit installiertem iTouch durcheinander (iTouch scheint die Messages irgendwie mehrfach zu versenden, die dann alle vom Hook auf meine Anwendung umgelenkt werden). Daher dieser Workaround.
Mein Problem ist mittlerweile gelöst, nur wurde hier noch eine Frage...
Forum: Win32/Win64 API (native code)
Delphi
by Gausi,
13. Sep 2006
KeyDown kann auch nichts bringen, weil diese Tasten keine Tasten im üblichen Sinne sind. Sie lösen kein Tastatur-Event aus, sondern das Senden einer WM_APPCOMMAND-Message. An die ganzen Konstanten kann man z.B. so gelangen
procedure MediaKey (Var aMSG: tMessage); message WM_APPCOMMAND;
//
procedure TForm1.MediaKey (Var aMSG: tMessage);
begin
Showmessage(InttoStr(aMSG.LParam));
...
Forum: Win32/Win64 API (native code)
Delphi
by Gausi,
4. Sep 2006
Ich habe es halbwegs lösen können, ja. Problem war, dass ohne iTouch ein Hook nötig ist (in etwa der, den ich oben gepostet habe), aber dieser Hook bei installiertem iTouch dafür sorgt, dass die Message vervielfältigt wird.
Mein Lösungsprinzip:
Das Programm besitzt ein Flag "MMKey-Taste bereits benutzt", der beim Start aus einer ini gelesen wird. Initial ist dieser "False". Der Hook wird...
Forum: Win32/Win64 API (native code)
Delphi
by Gausi,
21. Feb 2006
Ich bin ja eigentlich kein Freund von Schiebepostings, aber ich komme hierbei einfach nicht weiter.
Vielleicht nochmal: Die Mediatasten können ruhig erst bei iTouch oder bei sonst einem Service o.Ä. ankommen. Nur wenn dieser Service dann die Nachrichten weiterverteilt, möchte ich mit meinem Hook die Nachricht auf meine Anwendung umleiten. Das funktioniert ja auch in sofern, dass meine...
Forum: Win32/Win64 API (native code)
Delphi
by Gausi,
17. Feb 2006
OK, hier scheint es ja einige zu geben, die sich damit etwas auskennen :-D
Wenn ich iTouch abschalte (ob es nun die Messages hooked oder auf Treiberebene arbeitet, ist mir jetzt erstmal egal, ich klicke halt auf das Symbol im Tray und wähle "beenden"), dann funktioniert mein Hook.
Wenn iTouch läuft, dann wird auch bei mehreren offenen Multimedia-Anwendungen nur eine bedient, wenn ich eine...
Forum: Win32/Win64 API (native code)
Delphi
by Gausi,
16. Feb 2006
Zuallererst: 'Tschuldigung für so ein langes Erst-Posting...
Ich möchte in meinem Programm die Benutzung der Multimediatasten einer Tastatur ermöglichen. Das mache ich so:
TForm1 = class(TForm)
protected
procedure MediaKey (Var aMSG: tMessage); message WM_APPCOMMAND;
end;
//...
procedure TForm1.MediaKey (Var aMSG: tMessage);
begin