![]() |
Mausklicks und ENTER gedrückt halten
Hi @ all =),
mein Kumpel spielt Sword of the New World und er hat mich gebeten ein Programm dafür zu schreiben, welches er startet und dann für ihn Linksklickt und ENTER gedrückt hält. Vorher bewegt er den Mauszeiger über den Charakter(Position des Mauszeigers ist die Zielposition des Klicks). Sword of the New World ist minimiert und mein Programm soll irgendwo daneben auf dem Bildschirm angezeigt werden. Folgende Punkte habe ich bereits realisiert: - Mein Programm ist immer im Vordergrund - x- und y-Koordinate des Mauszeigers werden in Echtzeit ausgelesen (Auslesung der Pixel) - Anzahl der Klicks wird aus Edit1 ausgelesen und in Klicks abgespeichert - x- und y-Koordinate werden nach Klick auf Start in x1 und y1 abgespeichert+ Mauszeiger wird dorthin gesetzt Soooo..jetzt zu meinem Problem: Ich will ja dass er genau die Anzahl der Linksklicks die ich eingebe auch klickt und dass er Enter währenddessen gedrückt hält..nur tut er das nicht...bitte gebt mir Tipps wie ich den letzten Teil umschreiben muss damit genau das auch funktioniert. Dürfte für euch ja kein Problem sein, aber für mich, weil ich noch ein blutiger Anfänger bin :-( ^^ Und bitte, gebt mir am besten Beispiele oder Quellcodeteile, da ich MS Vista habe und deshalb die Delphi-Hilfe nicht benutzen kann :-! Hier mein Quellcode:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, QuickRpt, Qrctrls, Buttons, jpeg; type TForm1 = class(TForm) Timer1: TTimer; Timer2: TTimer; Start: TButton; Vordergrund: TButton; prevx: TLabel; prevy: TLabel; GroupBox1: TGroupBox; Edit1: TEdit; QRRichText1: TQRRichText; Image1: TImage; procedure VordergrundClick(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure StartClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; MausPos: TPoint; x: integer; y: integer; i: integer; Klicks: integer; implementation {$R *.DFM} procedure TForm1.VordergrundClick(Sender: TObject); begin SetWindowPos(Handle,HWND_TOPMOST,Left,Top,Width,Height,SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); qrrichtext1.color:= clblack; qrrichtext1.font.color:= clwhite; qrrichtext1.frame.color:= clwhite; end; procedure TForm1.Timer1Timer(Sender: TObject); begin GetCursorPos(MausPos); x:= MausPos.x; y:= MausPos.y; end; procedure TForm1.StartClick(Sender: TObject); var x1: integer; y1: integer; begin//Anfang Prozedur Start if edit1.text= '' then showmessage('DAVID!!! Ich hab kp was du von mir willst... xD') else begin//Anfang if-then-else Schleife x1:=x; y1:=y; SetCursorPos(x1,y1); Klicks:= strtoint(edit1.text); i:= 0; repeat keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN,0), 0, 0); Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN,0), KEYEVENTF_KEYUP, 0); i:=i+1; until i=Klicks; end//Ende if-then-esle Schleife end;//Ende Prozedur Start end. |
Re: Mausklicks und ENTER gedrückt halten
Zitat:
keybd_event & Mouse_Event minimiert ist? Das wird so nicht funktionieren. |
Re: Mausklicks und ENTER gedrückt halten
Hat dein Freund sämtliche Gliedmaßen verloren? Warum kann er nicht selber klicken und Enter drücken?
|
Re: Mausklicks und ENTER gedrückt halten
Kleiner Tipp. man kann die D7-Hilfe unter Vista verwenden. dazu musst du dir auf der Windows-HP einen Patch holen.
![]() @ Dani: das soll wohl ein Bot werden... |
Re: Mausklicks und ENTER gedrückt halten
Nochma HALLO an alle!!!
@ xX0815Xx: Dankeschön für den Tipp mit dem Patch =) Werd ich gleich mal ausprobieren!!! Und Ja es soll ein Bot werden... @ Dani: Nöö hat er nicht.Is noch alles da wo's hingehört :P^^ @ toms: Okay das wusste ich nicht, dass keybd_event & Mouse_Event nicht funktioniert während Sword of The New World minimiert ist. Könntest du/ihr mir ein Programm schreiben, bitte? =) ...weil ich bin mit meinem Latein an Ende In Sword of the New World gibt es einen Bug. Wenn man auf einen bestimmten Spielcharakter, der irgendwo in der Spielwelt rumsteht, klickt und dabei Enter gedrückt hält gibt dieser dann Gegenstände. Diese kann man dann logischerwiese verkaufen. Joar und mein Kumpel will eben keinen Muskelkater mehr im Zeigefinger haben^^ deshalb soll ich ein Programm schreiben welches dauerhaft linksklickt...dass die Enter taste gedrückt wird ist dann dazu da, dass er auch mal vom Computer weggehen kann und er trotzdem noch Gegenstände bekommt... Versteht ihr was ich meine? Folgendermaßen wäre die Ideallösung, die ich auch ursprünglich vorhatte umzusetzen: Man spielt Sword of the New World ganz normal, bewegt den Mauspfeil über den Spielcharakter und drückt dann einfach F2 und dadurch wird mein Programm im Hintergrund gestartet. Dieses klickt dann im 3-Klicks-pro-Sekunde-Takt dorthin wo die Maus sich gerade befindet, hält ENTER gedrückt und friert die Maus ein. Sodass man die Maus nichtmehr benutzen kann bis man ein weiteres Mal auf F2 drückt, dann nämlich wird die Maus wieder freigegeben und die Mausklicks und das ENTER festhalten hören auf. Ich hoffe es ist nicht zu kompliziert für euch ;-)...Ich bin, wie man sieht, kläglich gescheitert :-(^^ Danke schon einmal im voraus =) =) =) |
Re: Mausklicks und ENTER gedrückt halten
Zitat:
Du willst also bescheissen bei dem Spiel? NEIN. Hier wird niemand für Dich ein solches Programm schreiben. |
Re: Mausklicks und ENTER gedrückt halten
kommt schon...
Mein Kumpel würde ja auch dadurch nicht bescheißen...er würde lediglich einen Bug für sich effektiver als von Hand nutzen.. Er will sich halt nurnich immer die Hände wundklicken....pls help him =) |
Re: Mausklicks und ENTER gedrückt halten
Hi :-)
das was du/ihr da vorhabt fällt in den Rubrik "Bug using" und wird normalerweise mit dem Löschen des Spielaccounts geahndet. Da ich selber Sword of the new world spiele, finde ich eine solche Idee eine echte sauerei gebenüber mir und den anderen Spielern. Meine Meinung zu Bots. Gruß Hudel |
Re: Mausklicks und ENTER gedrückt halten
Zitat:
|
Re: Mausklicks und ENTER gedrückt halten
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:38 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