Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Shift Taste bei Programmstart abfragen? (https://www.delphipraxis.net/91641-shift-taste-bei-programmstart-abfragen.html)

moelski 8. Mai 2007 06:55


Shift Taste bei Programmstart abfragen?
 
Moin !

Ist es machbar (und wenn ja wie), dass ich den Status der Shift Taste abfrage? Und zwar ...
Delphi-Quellcode:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  SHIFT TASTE ABFRAGEN    <<<<<<< hier

  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Kann man dort auch abfragen ob Shift Links oder Shift Rechts und vielleicht sogar Caps Lock gedrückt würde?

Wir würden anhand des Status dieser Taste gerne eine Aktion ausführen -> Logging anzeigen Ja / Nein.

moelski 8. Mai 2007 07:16

Re: Shift Taste bei Programmstart abfragen?
 
Habs schon gefunden:

Delphi-Quellcode:
program Project1;

uses
  Forms,
  Windows,     {GetKeyState, VK_LSHIFT}
  Dialogs,     {ShowMessage}
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  if GetKeyState(VK_LSHIFT) < 0 then ShowMessage('L Shift Taste');
  if GetKeyState(VK_RSHIFT) < 0 then ShowMessage('R Shift Taste');
  if GetKeyState(VK_ESCAPE) < 0 then ShowMessage('Escape Taste');

  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
So tuts gehen. Trotzdem Danke an alle die es gelesen haben :mrgreen:

SirThornberry 8. Mai 2007 07:17

Re: Shift Taste bei Programmstart abfragen?
 
mit der Funktion MSDN-Library durchsuchenGetKeyState kannst du den Status von Tasten abfragen.
direkt auf "< 0" zu prüfen ist meiner Auffassung nach nicht der richtige Weg denn es wird nur durch ein einzelnes Bit bestimmt ob die Taste gedrückt ist oder nicht.

Codewalker 8. Mai 2007 08:06

Re: Shift Taste bei Programmstart abfragen?
 
Ich denke du hast Recht, aber nicht mit allem. Zumindest bei der Shift-Taste sollte es ja egal sein. Wenn irgendein Bit gesetzt ist, ist der Wert auf jeden Fall <> 0. Bei Toggle-Tasten wie Numlock, ScrollLock und CapsLock hast du allerdings recht. Dann könnte man mit <> 0 nicht den korrekten Status auslesen.

moelski 8. Mai 2007 08:11

Re: Shift Taste bei Programmstart abfragen?
 
Moin !

Mir reicht SHIFT und ESCAPE vollkommen aus. Von daher ist das mit den Toggel Tasten für mich nicht so wichtig.
Aber danke für den Hinweis !


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