Avatar billede bramsing Nybegynder
26. august 2004 - 01:16 Der er 5 kommentarer og
1 løsning

Odd(GetKeyState(vk_NUMLOCK))

Hejsa..

Er der en anden- og mere smart og mindre resourcekrævende - måde at undersøge bl.a. Odd(GetKeyState(vk_NUMLOCK)) i runtime end via en timer ??? fra et program der ligger i baggrunden og undersøger Numlocks tilstand...
Avatar billede dkn Nybegynder
26. august 2004 - 02:13 #1
Tja du kan nok med fordel lave en simple keyhook (find det på nettet) og så kun tjekke 2 events. (eller kun VK_NUMLOCK)

  case Msg.Message of
    WM_KEYDOWN, WM_KEYUP:
    begin
      if Odd(GetKeyState( VK_NUMLOCK )) then
        caption := 'on' else caption := 'off';
    end;
  end;

så tror jeg ikke det er ret resourcekrævende
Avatar billede vallemanden Nybegynder
26. august 2004 - 02:52 #2
private
    { Private declarations }
  KeyState: TKeyboardState;
.
.
.
.

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  GetKeyboardState(KeyState);
  if  (KeyState[vk_NUMLOCK] = 0) or (KeyState[vk_NUMLOCK] = 128) then
    StatusBar1.Panels[1].text := '' else
    StatusBar1.Panels[1].text := 'aktiv';

end;
Avatar billede vallemanden Nybegynder
26. august 2004 - 02:53 #3
husk at sætte KeyPreviw til true
Avatar billede bramsing Nybegynder
26. august 2004 - 03:01 #4
Vallemanden... Dit eksempel virker kun hvis man har formen aktiv når der trykkes... Det jeg skal bruge det til er til et program der viser status i systemtrayet ;o)

dkn... Jeg kigger på dit indlæg i morgen... Jeg er ved at gå kold i koder nu ;o)
Avatar billede dkn Nybegynder
26. august 2004 - 12:32 #5
Lavet lige en simpel demo:
www.asdev.dk/files/other/stuff/Journal%20Keyhook.zip

Men vil stadig sige du nok skal vælge at lave en rigtig keyhook og så kun se efter VK_NUMLOCK.
Avatar billede bramsing Nybegynder
26. august 2004 - 12:44 #6
Tak dkn... dit eksempel virker fint... Jeg kigger fortsat på Keyhook og hvordan det fungere :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester