Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi NUMLOCK einschalten (https://www.delphipraxis.net/5672-numlock-einschalten.html)

Lantis 15. Jun 2003 14:02


NUMLOCK einschalten
 
Hi Leute,
Wie kann ich eigendlich den Zustand der NUMLOCK-Taste umschalten?
Also sicherstellen daß NUMLOCK immer An ist.
Delphi-Quellcode:
...
var
  KBstate: TKeyboardState;
begin
  GetKeyboardState(KBstate);
  if KBstate[VK_NUMLOCK]=0 then ShowMessage('bitte NUMLOCK einschalten');
 ...
end;
Statt der ShowMessage-Meldung sollte dann sowas rein wie NUMLOCK:=1
Hat jemand 'ne Idee für mich?

Duffy 15. Jun 2003 14:10

Hallo Lantis,
Caps/Num/Scroll Lock ein- und ausschalten
bye

Luckie 15. Jun 2003 14:11

Delphi-Quellcode:
procedure SetNumLock(Active: Boolean);
var
State: SHORT;
Scan: UINT;
begin
Scan := MapVirtualKey(VK_NUMLOCK, 0);
State := GetKeyState(VK_NUMLOCK);
// Prüfen ob Status nicht schon korrekt ist
if Active xor (State and $0001 = $0001) then
begin
// User hat den Finger drauf :o) ( also erstmal wieder loslassen )
if State < 0 then
keybd_event(VK_NUMLOCK, Scan, KEYEVENTF_KEYUP, 0);
// Taste drücken
keybd_event(VK_NUMLOCK, Scan, 0, 0);
// User hat nicht den Finger drauf :o) ( also loslassen )
if State >= 0 then
keybd_event(VK_NUMLOCK, Scan, KEYEVENTF_KEYUP, 0);
end;
end;

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

procedure TForm1.Button2Click(Sender: TObject);
begin
SetNumLock(False);
end;

Lantis 15. Jun 2003 14:23

Danke für Eure schnellen Antworten, wo holt Ihr bloß so schnell die Links oder Codes her? Respekt.
Na dann mach ich mich mal wieder ran ans Gerät.

Gruß Lantis.


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