Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Wort ständig automatisch eingeben (https://www.delphipraxis.net/6585-wort-staendig-automatisch-eingeben.html)

Uncle Cracker 15. Jul 2003 20:16


Wort ständig automatisch eingeben
 
Ist bestimmt die falsche Sparte, aber hat ja was mit Games zutun.

Ist es irgenwie möglich das ein Wort vom Rechner ständig eingegeben wird?

Ich soll nämlich ein Cheat-Tool für einen Freund programmieren. Da ich aber die Adresse im Speicher nicht rausbekomme um zu cheaten, wollte ich wissen, ob es irgenwie geht ein Wort, also einen Cheat ständig hintereinander einzugeben.

Vielleicht hat jemand eine Ahnung oder andere Möglichkeit wie das gehen könnte.


:love: Danke UC

CalganX 15. Jul 2003 20:26

Re: Wort ständig automatisch eingeben
 
Hi,
du bräuchtest das Handle des Textfensters. Bei Games kannst du das allerdings vergessen.
Es gibt allerdings garantiert eine Speicheradresse für das, was du machen willst. Ansonsten wäre das in einer Datei ausgelagert... ;)

Zum Zugreifen auf Speicheradressen findest du auch hier in der DP einiges.

Chris

Uncle Cracker 15. Jul 2003 20:33

Re: Wort ständig automatisch eingeben
 
Also kann man überhaupt kein Wort immer wieder eingeben lassen.

CalganX 15. Jul 2003 20:43

Re: Wort ständig automatisch eingeben
 
Theoretisch ja, praktisch nein.

Aber an sich sollte es dann doch so ungefähr gehen:
Delphi-Quellcode:
var
  i: integer;
  aHwnd: DWORD;
  sTmp: string;
{...}
aHwnd := FindWindow(nil, 'Fenstertitel');
sTmp := 'lumberjack'; // zB für AoE2
for i:=1 to 100 do begin
  SendMessage(aHwnd, WM_SETTEXT, 0, StrToInt(sTmp));
end;
untested

Chris

moori 15. Jul 2003 20:44

Re: Wort ständig automatisch eingeben
 
Hi UC,

du willst wohl nen Trainer proggen.

Dieser gibt alle par sekunden einen cheat ein.

Wie schon erwähnt musst du wissen ob du die Cheats in den Speicher "eingeben" musst, oder ob das ganze über eine Art LogFile an das Game übergeben werden muss.

Um was für ein Game handelt es sich den???


Gruss Moori

Uncle Cracker 15. Jul 2003 20:59

Re: Wort ständig automatisch eingeben
 
GTA:Vice City

Habe keine Speicheradresse gefunden.

Mit GameWiz32 und mit MemHack auch nicht.

moori 15. Jul 2003 21:28

Re: Wort ständig automatisch eingeben
 
Hallo

AH GT3 VC. Ok da müsste es eigentlich ausreichen, Eine Eingabe zu Simulieren.

Da GT3 VC nur eine Art OnKeypressed-Ereigniss verwendet und die Einzelnen Tasten nacheinander zum Cheat zusammenfügt (sofern die Tastenfolge einem Cheat entsprechen könnte), reicht es völlig aus die Eingabe von Cheats über Delphi zu Simulieren. Du brauchst keinen Speicher zu suchen.

Die Cheats werden nichtmal über eine Konsole eingegeben, sondern direkt "ins Spiel".

Mein Tipp: Simuliere einfach das Eingeben von Cheats (Simuliere Tastendrücke).

Gruss Moori

Uncle Cracker 15. Jul 2003 21:39

Re: Wort ständig automatisch eingeben
 
Hättest du da ein Codebeispiel für mich :roll:


:love: Danke UC

moori 15. Jul 2003 22:17

Re: Wort ständig automatisch eingeben
 
Serrs,

Probier mal folgendes (Vorsicht habs nich getestet);

Delphi-Quellcode:
SendMessage(ActiveControl.Handle, WM_KEYDOWN, Ord('N'), 0);
SendMessage(ActiveControl.Handle, WM_KEYUP, Ord('N'), 0);
SendMessage(ActiveControl.Handle, WM_KEYDOWN, Ord('U'), 0);
SendMessage(ActiveControl.Handle, WM_KEYUP, Ord('U'), 0);
SendMessage(ActiveControl.Handle, WM_KEYDOWN, Ord('T'), 0);
SendMessage(ActiveControl.Handle, WM_KEYUP, Ord('T'), 0);
SendMessage(ActiveControl.Handle, WM_KEYDOWN, Ord('T'), 0);
SendMessage(ActiveControl.Handle, WM_KEYUP, Ord('T'), 0);
SendMessage(ActiveControl.Handle, WM_KEYDOWN, Ord('E'), 0);
SendMessage(ActiveControl.Handle, WM_KEYUP, Ord('E'), 0);
SendMessage(ActiveControl.Handle, WM_KEYDOWN, Ord('R'), 0);
SendMessage(ActiveControl.Handle, WM_KEYUP, Ord('R'), 0);
SendMessage(ActiveControl.Handle, WM_KEYDOWN, Ord('T'), 0);
SendMessage(ActiveControl.Handle, WM_KEYUP, Ord('T'), 0);
SendMessage(ActiveControl.Handle, WM_KEYDOWN, Ord('O'), 0);
SendMessage(ActiveControl.Handle, WM_KEYUP, Ord('O'), 0);
SendMessage(ActiveControl.Handle, WM_KEYDOWN, Ord('O'), 0);
SendMessage(ActiveControl.Handle, WM_KEYUP, Ord('O'), 0);
SendMessage(ActiveControl.Handle, WM_KEYDOWN, Ord('L'), 0);
SendMessage(ActiveControl.Handle, WM_KEYUP, Ord('L'), 0);
SendMessage(ActiveControl.Handle, WM_KEYDOWN, Ord('S'), 0);
SendMessage(ActiveControl.Handle, WM_KEYUP, Ord('S'), 0);
Verbinde das mit nem Timer stell den auf 20 Sek ein geh ins Spiel und warte ob du nun die "Harten Waffen" bekommst. (Nuttertools=Besten Waffen aus dem Spiel)

Gruss Moori

Christian Seehase 15. Jul 2003 23:59

Re: Wort ständig automatisch eingeben
 
Moin Moori,

das wird nicht funktionieren können, da ActiveControl das gerade aktive Control des eigenen Programmes meint. ;-)

Uncle Cracker 16. Jul 2003 08:58

Re: Wort ständig automatisch eingeben
 
Und wie funktionierts denn dann?


:love: Danke UC

Christian Seehase 16. Jul 2003 11:15

Re: Wort ständig automatisch eingeben
 
Moin UC,

theoretisch würde Mooris Vorschlag vielleicht greifen, wenn als Handle das des entsprechenden Fensters (Controls) angegeben würde.

Um mal zu überprüfen, ob Du da rankommen kannst, müsstest Du Dir mal, während das Spiel läuft, eine Liste aller Fenster, und Unterfenster erzeugen sowie deren Caption.
Beispiele hierfür solltest Du hier unter den Suchbegriffen

Hier im Forum suchenEnumWindows EnumChildWindows

finden können.
Vermutlich auch hier

[df]EnumWindows EnumChildWindows[/df]

negaH 16. Jul 2003 11:50

Re: Wort ständig automatisch eingeben
 
Überprüfe das das Game im Vordergrund ist und nutze dann keybd_event() um die Tasten zu simulieren.

Gruß Hagen

Florian H 16. Jul 2003 17:42

Re: Wort ständig automatisch eingeben
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe hier ein fertiges Cheattools für GTA VC rumliegen, selbstgeproggt natürlich ;)

Du kannst beliebige Cheats eingeben und denen jeweils einen Hotkey zuweisen (z.b. [F5])
Sobald du jetzt im Spiel diesen Hotkey drückst, wird der cheat eingegeben....und zwar die ganze zeit, bis du wieder loslässt!

habs mal angehängt (am design nicht stören, ist vom AgeOfMythology-cheater einfach abgewandelt ([Return] am Anfang und Ende weg!))

Zur technik: ich hab einfach die SndKey32.pas von der Delphi-CD genommen, mit der kann ich z.B. dem aktuell aktiven Fenster ein paar Keys oder Strings schicken (an das eingabefeld das grad den focus hat oder eben wie bei GTA VC dem "OnKeyDown")


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz