Avatar billede mora Nybegynder
11. november 2001 - 13:32 Der er 8 kommentarer og
1 løsning

\"special\" keyhook

Er det muligt at fande et tastetryk på \"multimedie\" knapperne ?

Altså. på nogle keyboards er der \"WWW, E-mail, Power\" etc...
Kan man fange dem i Delphi og så selv lave en handling ?

Det er ikke meningen programmet skal ud, skal bare bruge det på min egen comp, da det program der fulgte med er elendigt :)

Mvh MORA
Avatar billede hreiff Nybegynder
11. november 2001 - 14:28 #1
Prøv med en OnKeyDown Procedure:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Label1.caption := IntToStr(Key);
end;

Den giver et nummer for den tast som du trykker på.
Hvis der kommer noget tal for \"multimedieknapperne\" kan du fange dem.

//hreiff
Avatar billede mora Nybegynder
11. november 2001 - 14:31 #2
-wee, det gør der, hvordan sikrer jeg så der ikke bliver udført andet end det jeg laver i delphi ?
Avatar billede hreiff Nybegynder
12. november 2001 - 07:30 #3
Du burde kunne lave en case sætning:

case key of
244: begin  //eller hvilket nummer din tast har?
      ....
      Her kan du selv bestemme hvad der skal ske
      .... 
      key := 0;  // forhindre yderligere action på en tast
    end;
233: ....
237: ....
end;
Avatar billede mora Nybegynder
12. november 2001 - 07:41 #4
Virker ikke, den udfører stadig sin egen funktion også ...


procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin

{
www : 172
calc: 183
fav: 171
media: 181
E-mail: 180
My-computer: 182
}

  case key of
    172: begin  //eller hvilket nummer din tast har?
    showmessage(\'www\');
    key := 0;  // forhindre yderligere action på en tast
    end;

    183: begin  //eller hvilket nummer din tast har?
    showmessage(\'calc\');
    key := 0;  // forhindre yderligere action på en tast
    end;

    171: begin  //eller hvilket nummer din tast har?
    showmessage(\'fav\');
    key := 0;  // forhindre yderligere action på en tast
    end;

    181: begin  //eller hvilket nummer din tast har?
    showmessage(\'media\');
    key := 0;  // forhindre yderligere action på en tast
    end;

    180: begin  //eller hvilket nummer din tast har?
    showmessage(\'-e-mail\');
    key := 0;  // forhindre yderligere action på en tast
    end;

    182: begin  //eller hvilket nummer din tast har?
    showmessage(\'my-computer\');
    key := 0;  // forhindre yderligere action på en tast
    end;

  end;

end;
Avatar billede hreiff Nybegynder
12. november 2001 - 08:02 #5
hmmmm.
Avatar billede borrisholt Novice
12. november 2001 - 09:02 #6
Disse special taster kan man ikke fange på den måde .. Den måde de kommunikerer med Windows på er meget individuel, og kan ikke fanges med Keyboard Hooks. Der er kun den hårde vej og skrive en driver ....

Jens B
Avatar billede mora Nybegynder
12. november 2001 - 21:16 #7
Hmm, du skulle vel ikek havde et par links eller 2 :) ?

Altså de kan jo godt fanges (beskeden kommer), men jeg kan ikke forhindre at windows også laver noget :)
Avatar billede mora Nybegynder
12. november 2001 - 23:31 #8
http://www.torry.net/vcl/system/keys/cxkeyp10.exe
den kan finde min WWW, Calc, Fav, Media, E-mail og My comp

bare ikke power, sleep og wake - men det er også ligemeget :)
Avatar billede borrisholt Novice
13. november 2001 - 09:41 #9
Hvis der kan fanges med KeyDown .... Så kan du bare lave et KeyboardHook, Så kan du bare smide tastetrykket væk ..

Jens B
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