Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi bestimmte taste sauber abfangen mit WMI ? (https://www.delphipraxis.net/74888-bestimmte-taste-sauber-abfangen-mit-wmi.html)

richard_boderich 10. Aug 2006 09:48


bestimmte taste sauber abfangen mit WMI ?
 
hallo delphianer!

ich bin dabei die Idee fuer ein neues tool umzusetzten und bräuchte mal eurern sachverstand. :)
schildere mal worum s mir geht.

also ich moechte eine bestimmte taste abfangen undzwar systemweit. nun gibt es ja die moeglichkeit
das mit einem timer und getasynckeystate zu erledigen. ich halte dies jedoch fuer eine vergeudung
von resourcen/cpu zeit und die ist auf meinem zielsystem (cel 466) kostbar. viel lieber waere
es mir wenn man das mittels WMI erledigen koennte. leider hab ich bis jetz eher wenig mit WMI
gearbeitet und bin kein experte.

daher meine frage:

gibt es die moeglichkeit einen tastendruck mittels wmi abzufangen, und wenn ja wie muss die
deklaration aufgebaut sein. ich stelle mir das so vor das das betriebssystem ja eh alle tastatureingaben ueberwachen muss und mir halt eine WMI meldet wenn es meine taste ist.

Wenn ich jetzt falsch liegen sollte oder das ganze so nich realisierbar ist, weist mich bitte darauf hin.

gruß richard

konda 10. Aug 2006 09:54

Re: bestimmte taste sauber abfangen mit WMI ?
 
Also ich würde das mit einem Tastaturhook lösen. :zwinker:

richard_boderich 10. Aug 2006 10:10

Re: bestimmte taste sauber abfangen mit WMI ?
 
das heist mit WMI geht es nicht?

//edit also ich habe jetzt mal nach hooks und keyhooks gesucht und das alles erscheint mir

1. nicht sauber, sondern irgendwie getrickst und

2. total ueberdiemensioniert

ich will doch nur ne WM_keydown nachricht nur eben immer und nichz nur wenn mein programm den focus hatt. die msdn meint dazu:

WM_KEYDOWN Notification

--------------------------------------------------------------------------------

The WM_KEYDOWN message is posted to the window with the keyboard focus when a nonsystem key is pressed. A nonsystem key is a key that is pressed when the ALT key is not pressed.

//edit ende

richard

konda 10. Aug 2006 10:24

Re: bestimmte taste sauber abfangen mit WMI ?
 
Das heißt ich kenn mich mit WMI nicht aus. :mrgreen: Ich weiß aber das man es mit einem Tastaturhook ziemlich einfach lösen kann.

richard_boderich 10. Aug 2006 13:34

Re: bestimmte taste sauber abfangen mit WMI ?
 
hiho

ich bins nochmal. hab jetzt ein bisschen recherchiert und bin auf registerhotkey gestossen.
jetzt meine frage kann ich damit auch einzelne tasten ansprechen zum beispiel ein normales
"e" oder geht das nur in verbindung mit einer systemtaste (strg,alt,shift) ???

weil an sonsten waer das denk ich mal optimal fuer mich. keyhook halt ich fuer ueberdimensioniert.
will ja kein keylogger schreiben. hatt jemand eine antwort darauf?

gruss richard

konda 10. Aug 2006 13:47

Re: bestimmte taste sauber abfangen mit WMI ?
 
soweit ich weiß geht das nur in verbindung von alt, shift, strg, windowstaste

Muetze1 10. Aug 2006 14:41

Re: bestimmte taste sauber abfangen mit WMI ?
 
WMI ist ein Informationssystem von Windows und da kannst du keine Tasten mit abfragen. Du kannst bei WMI Informationen abfragen, aber nicht benachrichtigt werden (keine Events).

RegisterHotKey() geht nur im Zusammenhang mit einer Umschalttaste.

Keyboardhook ist die einzige mir so bekannte Möglichkeit deine Forderungen zu erfüllen.

richard_boderich 10. Aug 2006 14:51

Re: bestimmte taste sauber abfangen mit WMI ?
 
also ich hab es grade probiert und bei mir geht es. hab die taste ueber der tab taste genommen, weis nich wie die heist.

gruß richard

Boombuler 10. Aug 2006 14:52

Re: bestimmte taste sauber abfangen mit WMI ?
 
Hi

Zitat:

Zitat von richard_boderich
hiho

ich bins nochmal. hab jetzt ein bisschen recherchiert und bin auf registerhotkey gestossen.
jetzt meine frage kann ich damit auch einzelne tasten ansprechen zum beispiel ein normales
"e" oder geht das nur in verbindung mit einer systemtaste (strg,alt,shift) ???



Und wenn du über so etwas nachdenkst erscheint dir ein Hook nicht als sauber? Halte einfach die HookProc klein dann solltest du da relativ performant mit arbeiten können... Und du wirst auch auf jeden Fall über alle Tastenanschläge informiert!

Greetz
Boombuler

richard_boderich 10. Aug 2006 14:54

Re: bestimmte taste sauber abfangen mit WMI ?
 
das macht doch das betriebssystem bei registerhotkey fuer mich. minimaler programmieraufwand. und ich will doch gar nicht alle tasten abfangen. ;)

gruessle richard


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz