Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Sendkeys erzwingen (https://www.delphipraxis.net/72501-sendkeys-erzwingen.html)

Ajin 1. Jul 2006 19:06


Sendkeys erzwingen
 
Hallo ihr lieben!

Ich wollte einen autologin für ein onlinespiel schreiben (Silkroad, kein Browsergame!)
Die Server sind dermassen überfüllt das man 10-100 mal vom server dissconnected und alle Eingaben von neuem tätigen muss.
Mein Programm sollte das Spiel starten und den loginnamen + passwort in die felder automatisch eingeben.
Diverse Kleinigkeiten habe ich mit eurer Hilfe klären können, bin auch soweit fertig.

Nun das letze Problem:
das tool erfüllt alle meine Voraussetzungen bis auf eine: SendKeys (sndkeys32.pas) kann keine Tastaturkommandos an den game client senden, ebensowenig funktionieren
Delphi-Quellcode:
mouse_event(MOUSEEVENTF_LEFTDOWN, 200, 100, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 200, 100, 0, 0);
oder ähnliches.

Meine Vermutung:
Mit dem Spiel wird eine Software gestartet die sich nProtect GameGuard schimpft - vermutlich um Manipulationen am Spiel zu verhindern (cheaten wahrscheinlich) Ich denke mal das dieses Stück Software meine Sendkeys Aktionen und mouseEvents blockt, es ist auch kein Prozess vom Spiel zu sehen wenn gameguard aktiv ist. Das Fenster des game Clients ist jedoch verfügbar und mit dessen handle wollte ich meine eingaben machen.

GIbts da noch eine andere Möglichkeit?

Gruss Jaimy

edit: die Software vom Nostromo SpeedPad kann ebenfalls Tastatur makros aufzeichnen und weitergeben, komischerweise klappt das mit dieser Software...

Robert Marquardt 2. Jul 2006 11:49

Re: Sendkeys erzwingen
 
Du hast wohl recht mit dem Anti-Cheat-Tool. Seit Win 2000 nimmt naemlich DirectInput auch Tasten von keybd_event an.
Das Nostromo-Keypad hat vermutlich einen Treiber der sich als HID-Keyboard ausweist und dann glaubt Windows die Tasten kaemen von einem echten Keyboard.

_rEdoX 2. Jul 2006 12:04

Re: Sendkeys erzwingen
 
Zitat:

edit: die Software vom Nostromo SpeedPad kann ebenfalls Tastatur makros aufzeichnen und weitergeben, komischerweise klappt das mit dieser Software...
Ich denke mal das die Software auf einem Treiber basiert -> greift die Protection nicht.

Also hast du keine andere moeglichkeit als das ueber einen Treiber zu realisieren.

Man koennte auch versuchen die software von nostromo verzusteuern ...

Ajin 2. Jul 2006 18:14

Re: Sendkeys erzwingen
 
mal dumm gefragt: äh kann man ein deplphi programm als "treiber" irgendwie realisieren? dem System ein virtuelles USB Gerät vortäuschen? Ich habe leider keinen blassen Dunst wieviel Aufwand das ist bzw. ob es überhaupt möglich ist.

DGL-luke 2. Jul 2006 18:24

Re: Sendkeys erzwingen
 
gehen tut alles, brechi z.B. tut sein bestes, um für treiberprogrammierung mit delphi proofs-of-concept herzustellen, was auch schon funktioniert hat. Du solltest also ihn mal fragen.

(_reDox scheiont sich ja auch ziemlich auszukennen ?!)

Ajin 2. Jul 2006 18:27

Re: Sendkeys erzwingen
 
oje ich werde die experten mal darauf ansprechen. danke für die infos ihr lieben.
offtopic: kann ich einen registry wert auf inhalt prüfen? wenn das proggie zum ersten mal läuft ist ja noch nix in die reg. geschrieben, also gibts einen "is not a integer value" Fehler.

Delphi-Quellcode:
with TRegistry.Create do
  begin
    try
      Rootkey:=HKEY_CURRENT_USER;
      if OpenKey('Software\Jaimy\loginControl',True) then
      begin
        Edit1.Text:=ReadString('Name');
        Edit2.Text:=ReadString('Passwort');
        Edit3.Text:=ReadString('Exepfad');
        Edit6.Text:=ReadString('Maus_X');
        Edit7.Text:=ReadString('Maus_Y');
        Edit8.Text:=ReadString('restart');
        Edit9.Text:=ReadString('Maus_X2');
        Edit10.Text:=ReadString('Maus_Y2');
      end;

DGL-luke 2. Jul 2006 18:37

Re: Sendkeys erzwingen
 
Gibt es kein KeyExists-Member?

Ansonsten ist die Verwendung von Standardwerten bzw. StrToIntDef / trystrtoint empfehlenswert.

Ajin 2. Jul 2006 18:38

Re: Sendkeys erzwingen
 
wegem dem registry problem: habs rausgefunden!

Delphi-Quellcode:
var
 Registry: TRegistry;
begin
 with TRegistry.Create do
  begin
    try
      Rootkey:=HKEY_CURRENT_USER;
      if OpenKey('Software\Jaimy\loginControl',True) then
      begin
        if ReadString('Maus_Y')='' then
        begin
          ShowMessage('motz');
        end;
      end;
    finally
      Free;
    end;
  end;


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