Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mausklicks und ENTER gedrückt halten (https://www.delphipraxis.net/109701-mausklicks-und-enter-gedrueckt-halten.html)

FrankTheGhost 6. Mär 2008 00:04


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.

toms 6. Mär 2008 02:57

Re: Mausklicks und ENTER gedrückt halten
 
Zitat:

Zitat von FrankTheGhost

Sword of the New World ist minimiert und mein Programm soll irgendwo daneben auf dem Bildschirm angezeigt werden.

Hallo, verstehe ich es richtig, dass "Sword of the New World" während dem Senden von
keybd_event & Mouse_Event minimiert ist? Das wird so nicht funktionieren.

Dani 6. Mär 2008 04:04

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?

Aurelius 6. Mär 2008 07:38

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.

http://www.microsoft.com/downloads/d...DisplayLang=de

@ Dani: das soll wohl ein Bot werden...

FrankTheGhost 6. Mär 2008 15:42

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 =) =) =)

RavenIV 6. Mär 2008 16:11

Re: Mausklicks und ENTER gedrückt halten
 
Zitat:

Zitat von FrankTheGhost
Und Ja es soll ein Bot werden...
[schnip]
Könntest du/ihr mir ein Programm schreiben, bitte? =) ...weil ich bin mit meinem Latein an Ende

Soo?
Du willst also bescheissen bei dem Spiel?

NEIN.
Hier wird niemand für Dich ein solches Programm schreiben.

FrankTheGhost 6. Mär 2008 16:16

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 =)

Hudel1965 6. Mär 2008 16:18

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

RavenIV 6. Mär 2008 16:18

Re: Mausklicks und ENTER gedrückt halten
 
Zitat:

Zitat von FrankTheGhost
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 =)

NÖÖÖ, abgelehnt.

STS301 6. Mär 2008 16:20

Re: Mausklicks und ENTER gedrückt halten
 
lies dir bitte einmal Absatz 2.3.2.3 durch, auch wenn es bei dir keine Hausaufgabe ist


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:38 Uhr.
Seite 1 von 2  1 2      

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