![]() |
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:
oder ähnliches.
mouse_event(MOUSEEVENTF_LEFTDOWN, 200, 100, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 200, 100, 0, 0); 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... |
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. |
Re: Sendkeys erzwingen
Zitat:
Also hast du keine andere moeglichkeit als das ueber einen Treiber zu realisieren. Man koennte auch versuchen die software von nostromo verzusteuern ... |
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.
|
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 ?!) |
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; |
Re: Sendkeys erzwingen
Gibt es kein KeyExists-Member?
Ansonsten ist die Verwendung von Standardwerten bzw. StrToIntDef / trystrtoint empfehlenswert. |
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 09:56 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