AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hotkey oder Tastendruck simulieren

Ein Thema von jens106 · begonnen am 15. Dez 2009 · letzter Beitrag vom 15. Dez 2009
Antwort Antwort
jens106

Registriert seit: 18. Sep 2009
29 Beiträge
 
Delphi 7 Professional
 
#1

Hotkey oder Tastendruck simulieren

  Alt 15. Dez 2009, 21:34
Hi,

ich würde gerne für ein Spiel ein kleines Programm schreiben.

Was soll es können?
Das Programm soll, wenn ich zum Beispiel "m" drücke 2 mal "i" drücken.

Wozu brauche ich das Programm?
Nein! Das soll kein hack oder ähnliches werden. Da es bei CodMW2 leider keine binds mehr gibt will ich diese sozusagen ersetzen.


Ich habe bereits die Suchfunktion benutzt. Aber meistens kome ich dort nur zu irgendwelchen Topics bei denen ein Fehler gesucht wird. Vielleicht könnte mir jemand erklären wie ich diese idee umsetzten kann.
Wäre sehr nett

gruß

jens106
  Mit Zitat antworten Zitat
STaRDoGGCHaMP

Registriert seit: 1. Okt 2007
34 Beiträge
 
#2

Re: Hotkey oder Tastendruck simulieren

  Alt 15. Dez 2009, 21:55
Delphi-Quellcode:
function SendKey(wVk: WORD): UINT;
var Input: array of TInput;
begin
    SetLength(Input, 2);
    Input[0].Itype := INPUT_KEYBOARD;
    Input[0].ki.wVk := wVk;
    Input[0].ki.wScan := MapVirtualKey(wVk, 0);
    Input[1].Itype := INPUT_KEYBOARD;
    Input[1].ki.dwFlags := KEYEVENTF_KEYUP;
    Input[1].ki.wVk := wVk;
    Input[1].ki.wScan := MapVirtualKey(wVk, 0);
    SendInput(2, Input[0], sizeof(TInput));
end;
Diese Funktion simuliert einen Tastendruck. Wenn du jetz möchtest, dass wenn du beispielsweise "i" drückst, zwei mal "m" gedrückt wird musst du einfach nur ein Programm schreiben, welches einen globalen Hotkey setzt und dann einfach die oben genannte Funktion ausführen. (SendKey(VkKeyScan('m')). Alternativ könntest du noch nach PostMessage/SendMessage suchen, da könnte man theoretisch auch im minimierten Fensterzustand Tastendrücke simulieren.

Was aber ein generelles Problem bei solchen Sachen ist, ist die Tatsache, dass viele Spiele eine Anti-Cheat Software eingebaut haben, welche das Hacken vermeiden sollen. Und unter Hacken fallen auch Bots, welche die Funktion SendInput benutzen. Und meistens ist die Sache da mit SendInput sehr eklig, die Funktion wird in Usermode und auch in Kernelmode "gehooked", das heisst es wird sozusagen eine Funktion zwischengeschaltet, welche es nicht möglich macht SendInput zu nutzen, wenn das Spiel angeschaltet ist. Und auf Kernel-Ebene kann man das nur entfernen wenn man mit Treibern arbeitet, was auch eine etwas eklige Sache ist.
  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 03:43 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