Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Tastaturtaste sperren? (https://www.delphipraxis.net/18440-tastaturtaste-sperren.html)

dde 18. Mär 2004 18:12


Tastaturtaste sperren?
 
Wie kann ich den Gebrauch einer beliebigen Tastaturtaste sperren? Ich will z.B., dass die F1..F5 Tasten gesperrt werden, sprich kein Ereignis ausrufen.

NicoDE 18. Mär 2004 18:20

Re: Tastaturtaste sperren?
 
Zitat:

Zitat von dde
Wie kann ich den Gebrauch einer beliebigen Tastaturtaste sperren? Ich will z.B., dass die F1..F5 Tasten gesperrt werden, sprich kein Ereignis ausrufen.

Mit einem
a) eigenen Tasturtreiber
b) eigenem Tastatur-Filtertreiber
c) Registry-Eintrag für den MS-Tastaturtreiber
d) systemweiten Tastatur-Hook
e) thread-lokalen Tastatur-Hook
f) ...

Wahrscheinlich wird e am wenigsten Aufwand für Dich bedeuten und das gewünschte Ergebnis liefern.

dde 18. Mär 2004 18:31

Re: Tastaturtaste sperren?
 
Zitat:

Wahrscheinlich wird e am wenigsten Aufwand für Dich bedeuten und das gewünschte Ergebnis liefern.
damit habe ich aber immer noch nicht den effekt der Taste abgeschaltet.

NicoDE 18. Mär 2004 18:49

Re: Tastaturtaste sperren?
 
Warum nicht? Bitte formuliere Deine Frage genauer.

toms 18. Mär 2004 18:51

Re: Tastaturtaste sperren?
 
f) RegisterHotKey

dde 18. Mär 2004 19:00

Re: Tastaturtaste sperren?
 
http://www.swissdelphicenter.ch/torry sei dank:
Delphi-Quellcode:
{
 Connect a handler to the Application.OnMessage event.
 You have to do this in code:
}

  private
    procedure AppOnMessage(var Msg: TMsg; var Handled: Boolean);
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;

implementation

{$R *.dfm}

var
  FConnected: Boolean;

procedure TForm1.AppOnMessage(var Msg: TMsg; var Handled: Boolean);
begin
  if FConnected then
    case Msg.Message of
      WM_KEYFIRST..WM_KEYLAST,    // Keyboard events
      WM_MOUSEFIRST..WM_MOUSELAST: // Mouse events
        Handled := True
    end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnMessage := AppOnMessage;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Application.OnMessage := nil;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  FConnected := True;
end;

NicoDE 18. Mär 2004 19:01

Re: Tastaturtaste sperren?
 
Zitat:

Zitat von toms
f) RegisterHotKey

Wenn die zu unterdrückende Taste einen 'Effekt' hat, gehe ich mal davon aus, dass sie sich nicht (mehr) als Hotkey registreiren lässt.
Zitat:

Zitat von dde
http://www.swissdelphicenter.ch/torry sei dank

Schön, nur ist immer noch nicht klar, was Du eigentlich wolltest.

dde 18. Mär 2004 19:08

Re: Tastaturtaste sperren?
 
Zitat:

Schön, nur ist immer noch nicht klar, was Du eigentlich wolltest.
Bestimmte Tastatureingaben ignorieren [z. B. Alt+F4];

Evian 18. Mär 2004 19:35

Re: Tastaturtaste sperren?
 
Bei Swissdelphicenter wird erklärt, wie man Globale Hotkeys registriert -> URL

Wenn Du die Taste, die Du sperren willst, als globalen Hotkey definierst, aber diesem keine Funktion zuteilst, dann ist sie wie gesperrt. Geht auch bei Tastenkombination (z.B. ALT + x)

Also das funzt 100pro, ist aber sicher nicht die Beste Lösung.

gruss

Phill


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 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