AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Keyboard Input abfangen

Ein Thema von DarkLord0 · begonnen am 27. Jun 2005 · letzter Beitrag vom 3. Jul 2005
Antwort Antwort
DarkLord0

Registriert seit: 31. Okt 2004
59 Beiträge
 
#1

Keyboard Input abfangen

  Alt 27. Jun 2005, 17:47
Hallo,

Ich suche eine Möglichkeit, das Tastatur Input auf möglichst niedriger/system Ebene abzufangen (und in meinem Programm zu benutzen). Der Hintergrund ist, dass ich bei meinem Programm hotkeys benutze, aber nicht die registerhotkey funktion von windows benutzen möchte. Auch (globale) hooks sind, wie mir scheint, nicht die optimale Lösung weil zu ressourcenlastig(wichtig!) (weil eine DLL verwendet werden muss, die mit dem Hauptprogramm kommuniziert); dasselbe gilt für timer o.ä. Ich *hoffe*, es gibt dafür eine Möglichkeit, die nicht auf die dafür vorgesehenen winAPI calls zurückgreifen muss, bin aber auch für alles andere passende offen
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Keyboard Input abfangen

  Alt 27. Jun 2005, 18:09
Zitat von DarkLord0:
Hallo,
(weil eine DLL verwendet werden muss, die mit dem Hauptprogramm kommuniziert) offen
meinst du damit das hier:

Zitat:
lpfn
[in] Pointer to the hook procedure. If the dwThreadId parameter is zero or specifies the identifier of a thread created by a different process, the lpfn parameter must point to a hook procedure in a dynamic-link library (DLL). Otherwise, lpfn can point to a hook procedure in the code associated with the current process.
dann kann ich dich beruhingen: es wird unter WinNT/XP nicht einmal MIT Dll feunktionieren.

Du musst einen der LL hooks nehmen. such mal nach WH_KEYBOARD_LL, da solltest du auf einen thread von mir und einen beitrag von hagen(? is schon länger her...) stoßen, in dem das ganze ausführlich dargelgt ist. dann gehts auch OHNE DLL.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
DarkLord0

Registriert seit: 31. Okt 2004
59 Beiträge
 
#3

Re: Keyboard Input abfangen

  Alt 27. Jun 2005, 18:48
Nein, ich habe es mit globalen Hooks und DLL schon zum laufen bekommen - auch unter XP - (mit Hilfe des Assarbad-Tutorials), aber ich suche eben einen in meinem Fall besseren Weg.
Ich werde aber mal nach deinem Thread mit WH_KEYBOARD_LL suchen, danke soweit
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Keyboard Input abfangen

  Alt 27. Jun 2005, 18:54
wahr wohl doch Flocke, und nicht hagen...

http://www.delphipraxis.net/internal...t=whkeyboardll

hier is das gute stück, ganz unten is noch ne demo-app von Flocke dran!
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
DarkLord0

Registriert seit: 31. Okt 2004
59 Beiträge
 
#5

Re: Keyboard Input abfangen

  Alt 27. Jun 2005, 21:35
Jo, scheint zu funktionieren. Ich werde damit mal mein Programm 'ausstatten'.
Danke, hast mir wirklich weitergeholfen
  Mit Zitat antworten Zitat
DarkLord0

Registriert seit: 31. Okt 2004
59 Beiträge
 
#6

Re: Keyboard Input abfangen

  Alt 29. Jun 2005, 18:30
Funktionert ausgezeichnet !
Aber wie kann ich denn aus dem in der Funktion durch vkcode weitergegebenen Zeichen-Nummer herausfinden, welche Taste gedrückt wurde ? Chr(vkcode) liefert z.B. für die Taste "#" ein "¿" ...
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Keyboard Input abfangen

  Alt 29. Jun 2005, 18:40
Hier gibt's in der Code-Library eine Liste der virtuellen Keycodes. Es gibt aber auch noch eine API-Funktion, die VK's in Zeichen übersetzt, ich such' gerade noch...

[Nachtrag]

... gefunden! Hier
Volker
  Mit Zitat antworten Zitat
DarkLord0

Registriert seit: 31. Okt 2004
59 Beiträge
 
#8

Re: Keyboard Input abfangen

  Alt 29. Jun 2005, 20:08
Danke, aber bei mir geht das dann mit VKToChar(vkcode,0,0) nicht bei allen Zeichen. Zum Beispiel scheint der vkcode von "#" 191 zu sein - ab Zeichen 128 gibt die Funktion aber bei mir nur "" aus :/

edit : Ich hab auch mal versucht, toasciiex mit tounicodeex zu ersetzen, das hat aber auch nichts geändert.
  Mit Zitat antworten Zitat
DarkLord0

Registriert seit: 31. Okt 2004
59 Beiträge
 
#9

Re: Keyboard Input abfangen

  Alt 3. Jul 2005, 23:59
Update : Hab' es jetzt mit einer selbsterstellten Tabelle gelöst (wird dann wohl nur auf deutschen/mitteleuropäischen tastaturbelegungen vollständig funktionieren). Gibt es so etwas wie WH_KEYBOARD_LL eigentlich auch für maus input?
edit : natürlich WH_MOUSE_LL
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 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