|
You last visited: Today at 20:05
Advertisement
Anfänger braucht Hilfe mit C++
Discussion on Anfänger braucht Hilfe mit C++ within the C/C++ forum part of the Coders Den category.
02/04/2013, 18:41
|
#1
|
elite*gold: 0
Join Date: Sep 2009
Posts: 126
Received Thanks: 19
|
Anfänger braucht Hilfe mit C++
Hallo, liebe Programmierer.
Ich habe mich gestern mal rangesetzt und habe meine ersten Versuche mit C++ gestartet. Ich habe mir als Erstes zum Ziel gesetzt, ein "Klick Macro" zu schreiben. Das klappt alles soweit auch ganz gut, nur habe ich ein Problem, ich habe leider keine Ahnung wie ich das Programm, nach starten, wieder beenden bzw stoppen kann.
Gedacht ist es so:
Man startet die .exe, und wird mit "Bitte gebe die Zeit ein" begrüßt. Nun richtet man seine Maus dort hin, wo sie klicken soll und gibt die Zeit ein, nach wie viel Sekunden der Bot an diese Stelle klicken soll. Dann kann man optional diese Schritte wiederholen (je nachdem wie viele Klicks man benötigt). Starten tut man das ganze mit Eingabe von "0". Jetzt besteht das Problem, dass das Programm nicht stoppt bzw gestoppt werden kann.
An welche Stelle muss ich jetzt was schreiben, damit man das Programm in irgend einer Art und Weise stoppen bzw beenden kann?
Bin wie gesagt noch Anfänger und habe mir dieses Programm mit Hilfe von mehreren Videos auf Youtube zusammen geschustert, also die Antworten so einfach, wie nur möglich gestalten.
Danke im Vorraus.
PS: Mein Code:
// Klickbot by Junge-06
#include <iostream>
#include <windows.h>
#include <vector>
using namespace std;
int main () {
double zeit;
POINT pos;
vector<int> vX;
vector<int> vY;
vector<double> vZeit;
int a = 0;
while ( zeit != 0){
cout << "Bitte gebe die Zeit ein: ";
cin >> zeit;
cout << endl;
while ( zeit < 0 ){
cout << "Bitte gebe die Zeit ein: ";
cin >> zeit;
cout << endl;
}
GetCursorPos( &pos );
vX.push_back( pos.x );
vY.push_back( pos.y );
vZeit.push_back( zeit );
}
vX.push_back( 0 );
vY.push_back( 0 );
vZeit.push_back( 0 );
while( 1 ) {
Sleep( (int) (vZeit[a]*1000));
SetCursorPos( vX[a], vY[a]);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
a++;
if( vX[a] == 0 && vY[a] == 0 && vZeit[a] == 0) a = 0;
}
}
Mfg Junge-06
|
|
|
02/05/2013, 00:24
|
#2
|
elite*gold: 0
Join Date: Jun 2011
Posts: 265
Received Thanks: 50
|
Du hast das Problem dass du hier:
while( 1 ) {
Sleep( (int) (vZeit[a]*1000));
SetCursorPos( vX[a], vY[a]);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
a++;
if( vX[a] == 0 && vY[a] == 0 && vZeit[a] == 0) a = 0;
}
eine Endlosschleife hast.
Eventuell kannst du eine Funktion in die Schleife einbinden welche Pro Sekunde eine Variable +1 rechnet. Und wenn diese == zeit ist, soll die Schleife auf false gesetzt werden. Somit geht es weiter im Code und kommt zu return 0; //Programm Ende
Mfg,
Kosic
|
|
|
02/05/2013, 13:26
|
#3
|
elite*gold: 0
Join Date: Apr 2007
Posts: 26
Received Thanks: 2
|
in der schleife eine bedingung
if(vergZeit > zeit){ break; }
springt dann ebenfalls aus der Endlosschleife
|
|
|
02/06/2013, 17:33
|
#4
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Warum nicht gleich als Schleifenbedingung?
|
|
|
02/07/2013, 15:46
|
#5
|
elite*gold: 0
Join Date: Sep 2009
Posts: 126
Received Thanks: 19
|
Quote:
Originally Posted by MrSm!th
Warum nicht gleich als Schleifenbedingung?
|
Meinst du wie die Bedingung, die vor dir jemand gerade vorgeschlagen hat?
|
|
|
02/07/2013, 17:33
|
#6
|
elite*gold: 0
Join Date: Jun 2011
Posts: 265
Received Thanks: 50
|
Er meint so:
PHP Code:
int count = 0; while( count <= zeit ) { Sleep( (int) (vZeit[a]*1000)); SetCursorPos( vX[a], vY[a]); mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); count++; a++; if( vX[a] == 0 && vY[a] == 0 && vZeit[a] == 0) a = 0; }
Nur die If-Abfrage verstehe ich nicht, was die bringen soll.
Mfg,
Kosic
|
|
|
02/07/2013, 22:07
|
#7
|
elite*gold: 0
Join Date: Apr 2007
Posts: 26
Received Thanks: 2
|
Ob man es im IF oder in While macht ist ja hinfällig ;;
|
|
|
02/08/2013, 14:56
|
#8
|
elite*gold: 0
Join Date: Sep 2009
Posts: 126
Received Thanks: 19
|
Quote:
Originally Posted by Kosic
Nur die If-Abfrage verstehe ich nicht, was die bringen soll.
|
Laut Video(s) soll dieses "If" dafür sorgen, dass man mit Eingabe von "0" starten kann bzw., dass man nicht 0 als Zahl eingeben kann.
Mir ist gerade noch eine Möglichkeit eingefallen. An welche Stelle müsste ich was schreiben, damit die Console dauerhaft im Vordergrund ist?
Quote:
Originally Posted by Kosic
Er meint so:
PHP Code:
int count = 0; while( count <= zeit ) { Sleep( (int) (vZeit[a]*1000)); SetCursorPos( vX[a], vY[a]); mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); count++; a++; if( vX[a] == 0 && vY[a] == 0 && vZeit[a] == 0) a = 0; }
|
Habe es jetzt auf diese Weise versucht, jedoch returnt er direkt nach der Eingabe von "0" und startet das Macro gar nicht erst - siehe
Was nun?
€: Bei Eingabe einer beliebigen Taste schließt sich das Programm.
|
|
|
02/08/2013, 17:36
|
#9
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Quote:
Originally Posted by Junge-06
Meinst du wie die Bedingung, die vor dir jemand gerade vorgeschlagen hat?
|
Eben nicht. Warum ein if + break? Dann doch gleich in den Schleifenkopf.
Quote:
Originally Posted by Mokiri15
Ob man es im IF oder in While macht ist ja hinfällig ;;
|
Guter Stil undso
|
|
|
02/08/2013, 18:24
|
#10
|
elite*gold: 0
Join Date: Sep 2009
Posts: 126
Received Thanks: 19
|
Quote:
Originally Posted by MrSm!th
Eben nicht. Warum ein if + break? Dann doch gleich in den Schleifenkopf.
|
Wie genau füge ich das in den Schleifenkopf hinzu?
|
|
|
02/08/2013, 18:51
|
#11
|
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
|
Schau dir nochmal die stinknormale for-loop an und überlege dir, wo sich darin die Abbruchbedingung versteckt.
|
|
|
02/09/2013, 13:48
|
#12
|
elite*gold: 0
Join Date: Apr 2007
Posts: 26
Received Thanks: 2
|
in dm du die bedingung in While schreibst und nicht in if
@mrsmith
du siehst ja, dass er es nicht kann ;D
|
|
|
02/09/2013, 14:53
|
#13
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Quote:
Originally Posted by Junge-06
Wie genau füge ich das in den Schleifenkopf hinzu? 
|
Ich würde vorschlagen, du lernst die Sprache richtig, bevor du dich mit Makros und dergleichen beschäftigst. Wenn du schnelle Erfolge in diese Richtung möchtest, nimm AutoIt.
#closed
|
|
|
 |
Similar Threads
|
Anfänger braucht HILFE.
11/13/2012 - Lord of the Rings Online - 2 Replies
Ich fange mit HDRO an, deshalb wollt ich euch fragen was ich mir für einen Char machen soll: Schurken oder Waffenmeister. Was sind die vor- und Nachteile dieser Klassen?
Machen die Klassen gut DMG?
|
Anfänger braucht hilfe xD
01/24/2012 - Metin2 Private Server - 7 Replies
Hey ich wollte fragen wie man einstellen kann das man bis +6 keine uppitems benötigt ich weis es gibst Tausende Themen hier die mir weiter helfen könnten aber die sind schon etwas älter und ich habe kb das ich das in 1h+ fertig bekomme und es gibt eine schnellere Lösung deshalb öffne ich jetzt ein neues Thema außerdem suche ich auch noch eine neue (schnelle) Anleitung wie man z.b. Schwert+9 zu einem Langschwert uppen kann unnd wie man z.B. die Map 1 moobs mit den Map 2 moobs vertauscht.
Ein...
|
anfänger braucht hilfe xD
01/19/2012 - Metin2 Private Server - 2 Replies
hey mir ist lw und ich will meine zeit vertreiben wollte mir einen pserver machen den ich auch on bekomm habe nur ich habe kp wie ich ein reboot mache xD habe es einfach nach dem vid. gemacht und bin in mom online (ingame) dann wollte ich mir gm rechte machen, habe es schon mit navicat gemacht nur jetzt muss ich iwie rebooten nur ich weis nicht wie xD
also ich will wissen wie man rebootet und wieder startet pls kommt jetzt nicht mit 1000 links+ und ich weis das es schon 1000+themen gibt...
|
[Anfänger braucht hilfe]
04/26/2011 - CrossFire - 27 Replies
Hi,
seit mir bitte nicht bösse wen ich hir falsch bin...
Allso, ich wollt heute mit Crossfire anfangen...
1. Frage
Was für eine Namen soll ich nehmen darf ich auch groß Bustaben nehmen(?)
darf ich sonderzeichen wie z.B. ()-,+ usw. nehmen?
2.Frage
|
C Anfänger braucht hilfe :)
06/08/2010 - General Coding - 11 Replies
Also, ich versuche mich gerade ein bissl in C. Bin da noch ganz am Anfang. Ich habe mir ein TUT durchgelesen und habe einfach mal losgelegt, weil ich so am besten lerne, aber irgentwie will das nicht so ganz klappen. ^^
Ich wollte mir ein ganz simplen Rechner basteln:
#include <stdio.h>
int main()
{
int eingabe=0, zahl1=0, zahl2=0;
|
All times are GMT +1. The time now is 20:05.
|
|