Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Taste abfangen und nicht weitergeben??? (https://www.delphipraxis.net/148093-taste-abfangen-und-nicht-weitergeben.html)

Muellermilchtrinker 22. Feb 2010 16:21


Taste abfangen und nicht weitergeben???
 
Servus DP,

Ich möchte für ein Rennspiel ein Limitier erstellen.
Die Geschwindigkeit lese ich aus dem RAM aus.
Jetzt hab ich mir gedahct ich überprüfe die Geschwindigkeit und wenn die Geschwindigkeit, dass Limit erreicht hat, dann fange ich das Signal zum Gas geben ab.
Mein Problem ist nun, ich weiß nicht wie ich die Signale, die an das Spiel gesendet werden, überprüfe und wie ich diese unterdrücke (sprich: sie abfangen, damit sie im Spiel nicht ankommen [als wäre die Taste nicht gedrückt worden]).
Das wäre das erste.
Wenn ich das hätte, müsste ich mir noch was überlegen, was ich mache, wenn man dieses Spiel mit Lenkrad, etc. spielt (wie ich dort die Signale überwach)
Ich hoffe ihr könnt mir helfen.

lbccaleb 22. Feb 2010 16:32

Re: Taste abfangen und nicht weitergeben???
 
Und warum baust du nicht eine einfach if Abfrage in die Berechnung der Geschwindigkeit mit ein??

Muellermilchtrinker 22. Feb 2010 16:40

Re: Taste abfangen und nicht weitergeben???
 
Ich kann den Wert nicht verändern.
Sprich wenn ich in den RAM eine andere Geschwindigkeit rein schreibe wird sie, wenn ich im Fotomodus bin im Tacho angezeigt, wenn ich aber dann weiter fahren will, wird sofort wieder die andere Geschwindigkeit angezeigt.

himitsu 22. Feb 2010 16:44

Re: Taste abfangen und nicht weitergeben???
 
Wieso so umständlich?

Du empfängst doch die Taste für's Gasgeben und rechnest die Geschwindigkeit hoch ... und genau da baust du auch gleich die Begrenzung mit ein.

[edit]
komisch, grad eben sah ich noch keine Antworten :shock:


ups, falsch verstanden ... danke @dominikkv

also dann so, wie von haentschman auch schon vorgeschlagen ... in globaler Tastatur-Hook

haentschman 22. Feb 2010 16:44

Re: Taste abfangen und nicht weitergeben???
 
damit kann er aber das getrennt laufende Spiel immer noch nicht steuern...

Prinzipiell:
- Tastatureingaben global abfangen
- je nach Bedingung weiterreichen oder wegschmeißen

Details:
- bin ich überfragt, sorry

:hi:

dominikkv 22. Feb 2010 16:46

Re: Taste abfangen und nicht weitergeben???
 
Zitat:

Zitat von himitsu
Wieso so umständlich?

Du empfängst doch die Taste für's Gasgeben und rechnest die Geschwindigkeit hoch ... und genau da baust duch auch gleich die Begrenzung mit ein.

Er redet von einem anderen (Renn-)Spiel, bei dem er versucht, langsamer zu fahren.

DeddyH 22. Feb 2010 16:54

Re: Taste abfangen und nicht weitergeben???
 
IMHO läuft das auf einen Keyboardhook hinaus. Wobei ich bei DirectX-Spielen noch nicht einmal sicher bin, ob die das nicht mitbekommen.

Medium 22. Feb 2010 16:59

Re: Taste abfangen und nicht weitergeben???
 
Low-Level Hooks greifen imho vor DirectX, und zudem ist die Verwendung von DirectInput für Tastatur- und Mauseingaben von Microsoft explizit nicht empfohlen, und dem entsprechend selten anzutreffen. Dabei ist letzteres die Aussage, bei der ich mir wirklich sicher bin :stupid:.

Muellermilchtrinker 23. Feb 2010 16:51

Re: Taste abfangen und nicht weitergeben???
 
Danke erstmal für die Antworten.
Ob das jetzt von Microsoft nicht empfohlen ist, einen LowLevelHook zu machen, wäre mir egal.
Hat jmd. vllt ein paar Codeschnipsel um einen LowLevelHook zu erstellen??? Bräuchte das auch noch für ein anderes Programm.

Sir Rufo 23. Feb 2010 16:56

Re: Taste abfangen und nicht weitergeben???
 
Zitat:

Zitat von Muellermilchtrinker
Danke erstmal für die Antworten.
Ob das jetzt von Microsoft nicht empfohlen ist, einen LowLevelHook zu machen, wäre mir egal.
Hat jmd. vllt ein paar Codeschnipsel um einen LowLevelHook zu erstellen??? Bräuchte das auch noch für ein anderes Programm.

Isch gläube du hast die Aussage nicht verstanden:

Der/die Spielehersteller sollen laut Microsoft NICHT DirectInput benutzen, und daher würden Spiele, die doch DirectInput benutzen eher selten zu finden sein.

Und nur dann - wenn kein DirectInput benutzt wurde - nur dann hat dein Hook eine Chance.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:29 Uhr.
Seite 1 von 2  1 2      

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