AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Thema durchsuchen
Ansicht
Themen-Optionen

Sondertasten (Play, Stop, nächster Titel) bei Tastaturen

Ein Thema von SirThornberry · begonnen am 27. Jun 2004 · letzter Beitrag vom 1. Aug 2004
 
Benutzerbild von XHelp
XHelp

Registriert seit: 12. Jul 2004
Ort: Duisburg
172 Beiträge
 
Delphi 6 Enterprise
 
#21

Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen

  Alt 29. Jul 2004, 01:25
Zitat von Der_Ventilator:
Wenn ich z.B in einer FullScreenAnwendung [Spiel] bin und ich meinem eigenen MediaPlayer sagen möchte, dass er weiterschalten solle?
Das muss man, denk ich, mit einem hook ("Falle") machen.

Delphi-Quellcode:
const
  WM_USER = $0400; // aus messages.pas
  WM_KEYBHOOK = WM_USER + 346;

[...] type [...]

var
  KeyboardHook: HHOOK;

function KeyboardProc(hCode: Integer; wParam: Longint; lParam: Longint): LRESULT; stdcall;
var
  Wnd: THandle;
begin
  if hCode = HC_ACTION then
    begin
      Wnd := FindWindow(nil, 'Form1');
      if Wnd > 0 then
        PostMessage(Wnd, WM_KEYBHOOK, wParam, lParam);
    end;
  Result := CallNextHookEx(KeyboardHook, hCode, wParam, lParam);
end;

function SetKeyboardHook: Boolean;
begin
  KeyboardHook := SetWindowsHookEx(WH_KEYBOARD, @KeyboardProc, HInstance, 0);
  Result := KeyboardHook <> 0;
end;

function RemoveKeyboardHook: Boolean;
begin
  Result := UnhookWindowsHookEx(KeyboardHook);
end;
Das sind erstmal die funktionen, die du unbedingt brauchst.

Jetzt erstellst du eine prozedur mit dem namen: "WMKEYBHOOK". Das ist so was wie OnKeyPress in diesem fall.

Delphi-Quellcode:
procedure TMainForm.WMKEYBHOOK(var Msg: TMessage);
begin
    if IntToStr(Msg.wParam)=13 then [......];
end;
Um die falle jetzt zu starten, irgendwo in dein programmif not SetKeyboardHook then ShowMessage('error'); reinschreiben. (OnCreate oder so was)

Um es zu stopen: if not RemoveKeyboardHook then ShowMessage('error'); Bei dem Beispiel wurde eigentlich eine dll benutzt, aber ich habe es auch so ausprobiert, das funktioniert trotzdem
Alex
Von allen Dingen die mir verloren gegangen,
hab ich am meisten an meinem Verstand gehangen
  Mit Zitat antworten Zitat
 


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 23:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz