Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi In DirectX Spiel "eingreifen" (https://www.delphipraxis.net/22125-directx-spiel-eingreifen.html)

kurtm1 12. Mai 2004 17:51


In DirectX Spiel "eingreifen"
 
Wie kann ich einem geöffneten Spiel über Delphi eine Message schicken?

Konkret geht es darum die Maussteuerung von einem Spiel auf Tastatur "umzuprogrammieren". Leider werden die Hotkeys nicht mehr ausgeführt sobald das Spiel im DX Mode läuft

c113plpbr 14. Mai 2004 15:21

Re: In DirectX Spiel "eingreifen"
 
Die Tastatur kannst du per Hook 'abhören', und die maus musst du eben irgendwie 'simulieren'. Ich wette, das dies auch mit Hooks geht ...

ciao, Philipp

kurtm1 14. Mai 2004 15:48

Re: In DirectX Spiel "eingreifen"
 
Naja ich habe es bis jetzt nur geschafft dass die Befehle im Menü des Spieles angenommen werden.

Sobald aber das Spiel startet wird anscheinend alles abgefangen

c113plpbr 14. Mai 2004 16:13

Re: In DirectX Spiel "eingreifen"
 
Hast du es mit Keyboard Hooks versucht?
Wenn es damit nicht funktioniert könntest du theoretisch per GetAsyncKeyState und nem Timer bestimmte Tastaturtasten abfragen, dies funktioniert auf jeden fall in spielen, aber nicht zuverlässig.
Eine weitere möglichkeit wäre, es wie das Spiel zu machen: mit (warscheinlich) DirectInput. Wenn du die Funktion mit welcher das Spiel den tastatur-status bekommt mit einem Hook versiehst, hörst du alles mit und kannst es bei bedarf verändern. Die ist sehr kompliziert, aber möglich.

ciao, Philipp

kurtm1 14. Mai 2004 21:32

Re: In DirectX Spiel "eingreifen"
 
Keyboard Hooks hab ich noch net gemacht

Nicodius 14. Mai 2004 21:49

Re: In DirectX Spiel "eingreifen"
 
meinst du jetzt bei irgendeinen oder von dir programmeirten?

kurtm1 14. Mai 2004 21:54

Re: In DirectX Spiel "eingreifen"
 
beidem. Vielleicht könnte ja mal wer sich damit besser auskennt einen Ansatz machen.

Der Zweck ist:
Interessant wäre zum Beispiel Spiele die man normal nur von Hand steuern kann auch mit der Tastatur zu spielen
-> Daher die Mausposition im Spiel zu ändern. Das ist das was ich eigentlich brauche wie ich das zusammenbekomme

Nicodius 14. Mai 2004 22:00

Re: In DirectX Spiel "eingreifen"
 
hmm.... --> wie c113plpbr schon sgate das geht über hooks ;) Luckie hatte glaub ich ein Tutorial :gruebel:

c113plpbr 14. Mai 2004 22:01

Re: In DirectX Spiel "eingreifen"
 
Als erstes musst du ja wissen, dass ne Taste auf der Tastatur gedrückt wurde. Dazu schreibst du dir am besten einen Keyboard-Hook (dazu gibts hier in der dp genügend beispiele). Dann weist du, wann eine Taste gedrückt wurde, und auch welche, worauf du dann irgendwie dem Computer beibringen musst, dass die maus bewegt wurde. Wie das aber gehen soll, kann ich mir nur wage vorstellen. (aber wenn ich vielleicht nen bisschen darüber nachdenke ... ;-) )

ciao, Philipp

Nicodius 14. Mai 2004 22:02

Re: In DirectX Spiel "eingreifen"
 
du machst ne funktion HookAbfrage (quellcodes zur genüge hier) und dann fragste einfach ab


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 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