AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Macros in Game ausführen mit Delphi?
Thema durchsuchen
Ansicht
Themen-Optionen

Macros in Game ausführen mit Delphi?

Ein Thema von ScharfeMietze · begonnen am 17. Apr 2020 · letzter Beitrag vom 17. Apr 2020
Antwort Antwort
ScharfeMietze

Registriert seit: 5. Mär 2014
165 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#1

Macros in Game ausführen mit Delphi?

  Alt 17. Apr 2020, 16:15
Kann man mit Delphi Macros in Games ausführen? Wenn ja wie?
Die Aufgabe die ich bekommen habe ist, Wenn in Mortal Combat eine Tastenkombination gebraucht wird diese mit einem Macro zu ersetzen wie es diverse Mäuse und Tastaturen auch machen.

Aufgabe wäre z.B wenn Taste "1" auf dem numblock gedrückt wird sende Tasten "X+y" dann "Z"


Ich brauche mal einen Schubs wie man das umsetzen kann. Bin für alle Ideen Dankbar.
Ich wüsste sofort was ich mache wenn es um eine Delphi Form gehen würde aber so? Keine Ahnung.
Gruß
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Macros in Game ausführen mit Delphi?

  Alt 17. Apr 2020, 16:28
ein Schubs wäre
global hooks

Aber ich würde eine andere Aufgabe wählen, wenn das geht (Schule/Uni?).

Mortal Combat klingt wie DirectX oder OpenGL, und dort wird das alle noch viel schwieriger.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Macros in Game ausführen mit Delphi?

  Alt 17. Apr 2020, 17:25
Zitat:
wie es diverse Mäuse und Tastaturen auch machen.
Das kannst du "so" vermutlich nicht machen.
Bei diesen Mäusen/Tastaturen ist es oft so, da direkt Maus das erkennt und sendet die Befehlsfolgen direkt an den PC.

Ja, hier wäre dann ein Hook nötig, der die Tasten zwischen Tastatur/PC/Windows und dem Programm abfängt und dort umschreiben kann.
Jetzt kommt es noch darauf an, wie das Programm auf die Tastatur reagiert. Normal über die WM_-Messages, via DirectInput oder sonstwie,
und ob das Spiel eine Erkennung auf Hooks hat, um den Cheatern das Leben zu erschweren.
$2B or not $2B
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.456 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Macros in Game ausführen mit Delphi?

  Alt 17. Apr 2020, 17:54
Wenn Du unbedingt willst kannst Du dir die Sourcen von LuaMacros laden und die mal anschauen. Danach hast Du garantiert genug
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

AW: Macros in Game ausführen mit Delphi?

  Alt 17. Apr 2020, 17:56
Quasi alle Spiele setzen auf DirectInput. Das heißt mit simulierten Tastendrücken und Mausklicken passiert dann im Spiel ganz genau nichts.

Es gibt Python-Bibliotheken mit denen manm das bewerkstelligen kann. Einfach besonders nach python DirectInput simulate key press oder sowas googeln.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: Macros in Game ausführen mit Delphi?

  Alt 17. Apr 2020, 18:32
Es gibt auch LowLevel-Hooks, wo man sich tiefer reinhängen kann, auch vor dem DirektInput.


Oder

Es gibt noch die Möglichkeit über einen virtuellen Tastaturtreiber.
Das wirkt dann so, als wenn die Tasten von einer "Hardware" kommen, aber der Treiber wird von einem Programm mit Daten gefüttert.
Über einen Hook kann man dann auf Tasten reagieren und "zusätzlich" zu der Taste vom "richtigen" Treiber dann anschließend noch über den Virtuellen weitere Tasten schicken.

Das wäre ein Weg, wenn es nicht möglich ist sich reinzuhooken und Tasten abzufangen (nicht vor dem Programm, sondern nur Parallel).


Allerdings gibt es auch hier Programme, die versuchen zu erkennen, ob es eine "echte" Hardware ist.
Da wäre dann noch die Möglichkeit sich ganz raus zu bewegen und eine echte Tastatur zu simulieren. (ein Microcontroller ala Arduino, der sich als Tastatur ausgibt ... ist leichter, als man denkt)
$2B or not $2B

Geändert von himitsu (17. Apr 2020 um 18:35 Uhr)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#7

AW: Macros in Game ausführen mit Delphi?

  Alt 17. Apr 2020, 18:59
Es gibt auch LowLevel-Hooks, wo man sich tiefer reinhängen kann, auch vor dem DirektInput.
Mit LL Hooks habe ich zumindest damals erfolgreich einen "1-Button-Auto-Fire-Raid-Moonkin-Bot" für WoW hinbekommen. (In Kombi mit einem kleinen eigenen Addon, das über Farben codiert meine aktuellen Buffs und Timer via Bild an mein Programm übergeben hat.) Das hat auch Blizzards sehr rigoroses Anti-Cheat über bestimmt ein Jahr nicht entdeckt. (Was nicht ausschließt, dass neuere Versionen bzw. andere Anti-Cheat Systeme es könnten, und ja - es war ein Spiel mit dem Feuer.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
ScharfeMietze

Registriert seit: 5. Mär 2014
165 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#8

AW: Macros in Game ausführen mit Delphi?

  Alt 17. Apr 2020, 19:45
Erschreckender weise ist es bös einfach.

Delphi-Quellcode:
var
  aTask: ITask;
begin
aTask := TTask.Run(procedure
  begin
    keybd_event(VkKeyScan('d'), 0, KEY_EVENT, 0);
    Sleep(20);
    keybd_event(VkKeyScan('d'), 0, KEYEVENTF_KEYUP, 0);
  end);
end;
Damit ist es ohne Probleme möglich die Figur nach rechts zu bewegen. Ich gehe also von aus das ich auch weitere befehle so eingeben kann.
das einzige was ich noch brauche ist eine Function die mir die Tastatur logt, meine aktuelle ließt das Numpad nicht, sondern Loggt nur "1".
Wer da eine Idee hat immer her mit

Geändert von ScharfeMietze (17. Apr 2020 um 20:17 Uhr)
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Macros in Game ausführen mit Delphi?

  Alt 17. Apr 2020, 22:30
Zitat:
wie es diverse Mäuse und Tastaturen auch machen.
Das kannst du "so" vermutlich nicht machen.
Bei diesen Mäusen/Tastaturen ist es oft so, da direkt Maus das erkennt und sendet die Befehlsfolgen direkt an den PC.
So oft auch nicht. Mein letzter Stand ist, dass z.B. Logitech-Produkte ohne „Treiber“/Editor-Software exakt gar nichts können, was nicht auch eine Standard-Tastatur kann. Ich habe aber aus dem Grund derzeit keine Logitech-Produkte mehr, da ich mich immer freue, wenn mein Tray bis auf das Lautsprechersymbol leer ist.
Janni
2005 PE, 2009 PA, XE2 PA
  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 18:23 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