AGB  ·  Datenschutz  ·  Impressum  







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

Tastatur Hook - Taste sperren

Ein Thema von FrankBrin · begonnen am 13. Jan 2009 · letzter Beitrag vom 13. Jan 2009
Antwort Antwort
FrankBrin

Registriert seit: 8. Mär 2005
Ort: Oppenweiler
105 Beiträge
 
Delphi 2007 Enterprise
 
#1

Tastatur Hook - Taste sperren

  Alt 13. Jan 2009, 11:10
Moin zusammen,
ich habe da ein ganz dringendes Problem. Meine Tochter sitzt weitweg in den Bergen. Ihre einzigste (günstige) Möglichkeit zu kommunizieren ist über Internet. Jetzt spinnt ihre Tastatur an Ihrem Notebook. Die Pfeiltaste links ist immer gedrückt.
Jetzt wollte ich ihr schnell helfen, indem ich ein Tastatur Hook Programm schreibe, das diese Taste tot legt.
Habe dazu das Tutorial von Assarbad genommen und hänge jetzt nur noch an der Frage: Was muß ich in der DLL machen, damit die Taste ($25) nicht verarbeitet wird?

Wer kann mir schnell helfen.

Gruß
Frank
Frank Brinschwitz
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#2

Re: Tastatur Hook - Taste sperren

  Alt 13. Jan 2009, 11:26
Das wird nicht funktionieren. Tastaturen sind meist in einer Matrix verdrahtet.
Daraus ergibt sich, das einige Tastenanschläge abhängig von der Position in der Matrix nicht mehr erkannt werden können.

Also ein Hardware Problem!
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
FrankBrin

Registriert seit: 8. Mär 2005
Ort: Oppenweiler
105 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Tastatur Hook - Taste sperren

  Alt 13. Jan 2009, 11:33
Hallo generic,
is schon klar wie eine Tastatur aufgebaut ist. Wenn jedoch wirklich nur diese eine Taste als gedrückt erkannt wird, sollte ich durch Abschalten dieser Taste zumindest bis der Notebook wieder hier ist meiner Tochter helfen können.
Frank Brinschwitz
  Mit Zitat antworten Zitat
ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#4

Re: Tastatur Hook - Taste sperren

  Alt 13. Jan 2009, 11:35
Schau dir mal die Beschreibung im MSDN dazu an MSDN
Dort solltestest du die nötigen Einstellungen finden die das Weiterleiten der Tasten unterbinden.

Ein direktes Beispiel hab ich leider auch nicht.
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat
FrankBrin

Registriert seit: 8. Mär 2005
Ort: Oppenweiler
105 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Tastatur Hook - Taste sperren

  Alt 13. Jan 2009, 12:13
Hallo,
ja Danke für den Hinweis, jedoch steht da auch nicht mehr als bei assarbad.

Hat denn keiner eine simple Lösung?
Frank Brinschwitz
  Mit Zitat antworten Zitat
ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#6

Re: Tastatur Hook - Taste sperren

  Alt 13. Jan 2009, 12:20
Zitat von FrankBrin:
Hallo,
ja Danke für den Hinweis, jedoch steht da auch nicht mehr als bei assarbad.

Hat denn keiner eine simple Lösung?
Zitat:
SetWindowsHookEx()

Calling the CallNextHookEx function to chain to the next hook procedure is optional, but it is highly recommended; otherwise, other applications that have installed hooks will not receive hook notifications and may behave incorrectly as a result. You should call CallNextHookEx unless you absolutely need to prevent the notification from being seen by other applications.
Da stehst doch...

dwThreadId

Leerlassen um den Hook Global zu setzten und dann CallNextHookEx nicht aufrufen.
Denn bei Asserbad wird es aufgerufen.
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat
FrankBrin

Registriert seit: 8. Mär 2005
Ort: Oppenweiler
105 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Tastatur Hook - Taste sperren

  Alt 13. Jan 2009, 12:51
Sorry, das hab ich nicht gesehen.
Jedoch tut das auch nicht. Ich hab jetzt meine HookProc so:

function KeyboardHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
Result := 0;
if wParam <> $25 then Result := CallNextHookEx(HookHandle, nCode, wParam, lParam);
case nCode < 0 of
TRUE: exit; //wenn code kleiner 0 wird nix gemacht
FALSE:
if wParam = $25 then begin
// messageBox( 0, 'Hallo', 'Hallo', MB_OK);
end;
end;
end;

Sofern ich die MessageBox auskommentiere wird diese auch angezeigt, soll heissen das Ding funktioniert prinzipiell.
Jedoch wird die Pfeiltaste in Applikationen nicht unterdrückt!
Frank Brinschwitz
  Mit Zitat antworten Zitat
ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#8

Re: Tastatur Hook - Taste sperren

  Alt 13. Jan 2009, 13:15
Benutzt du WH_KEYBOARD oder WH_KEYBOARD_LL?

Wenn du WH_KEYBOARD benutzt versuch mal den LowLevel Hook.
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#9

Re: Tastatur Hook - Taste sperren

  Alt 13. Jan 2009, 13:23
Hallo

Im Anhang findest du ein DisableLeftKey Tool (getestet unter XP), welches mittels Hook die linke
Pfeiltaste deaktiviert (CoolTrayIcon Komponente wird benötigt)
Angehängte Dateien
Dateityp: zip disableleftkey_803.zip (311,7 KB, 61x aufgerufen)
Thomas
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#10

Re: Tastatur Hook - Taste sperren

  Alt 13. Jan 2009, 13:56
Zitat von FrankBrin:
Hallo generic,
is schon klar wie eine Tastatur aufgebaut ist. Wenn jedoch wirklich nur diese eine Taste als gedrückt erkannt wird, sollte ich durch Abschalten dieser Taste zumindest [...] helfen können.
ca. 7 weitere Tasten werden auch nicht erkannt, da das (fehlerhafte-)drücken der Cusortaste dies die Erkennung schon blockiert.
Kannst natürlich Glück haben das das unwichtige Tasten sind, wie F-Tasten, pos, home, Bild usw.

Du solltest versuchen das Problem mechanisch zu lösen.

Geht z.B. Papier unter die Taste zu klemmen oder Taste abziehen?
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  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 09:34 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