Kleine Fragen zum Botscripten

01/24/2011 16:26 TheWatchman#1
Hey,

ich bin im Moment dabei aus Übungszwecken diverse kleine Bots zu
erstellen. Dabei sind mit einige Fragen aufgekommen. Ich hoffe, ihr könnt
mir bei der Beantwortung behilflich sein. Wenn ihr nicht die Antowrt auf alle Fragen wisst, wäre es sehr hilfreich, wenn ihr wenigstens eine/mehrere
andere beantwortet.

Meine Fragen:

- Wie mache ich, dass die Person, die in eine Inputbox Daten eingeben soll
(Beispielsweise ID und Passwort) die Daten nur einmal eingeben muss und
es dann gespeichert werden kann.

- Ich habe einfach mal so einen Google-Bot erstellt, der (wie der Name schon sagt) für einen googelt (z.B. wenn man gerade auf dem Desktop ist).

De Code dazu ist:

$Frage = InputBox ("Frage", "Bitte hier den zu googelnden Begriff eingeben!")

ShellExecute ("http://www.google.de")
MouseClick ("left", 324, 369 )
Send ($Frage)
Send ("{enter}")

-----------------------------------------------------------------------

Wie kann ich dazu eine leine Benutzeroberfläche erstellen (Dass der Bot etwas Farbenfroh ist und nicht nur dieses typische, langweilige
blau-weisse eckige Kästchen bietet..)

------------------------------------------------------------------------

Je nach Bildschirm - Größe ist das Google Eingabefeld an einer anderen Stelle.
Kann mir jemand PixelSearch erklären, damit der Bot das Eingabefeld erkennt?
Ich habe das in den Tutorials nicht so ganz verstanden...

------------------------------------------------------------------------

Würde mich über Tipps und Antworten sehr freuen.
Liebe Grüße,
TheWatchman
01/24/2011 17:10 Klickboy#2
Quote:
- Wie mache ich, dass die Person, die in eine Inputbox Daten eingeben soll
(Beispielsweise ID und Passwort) die Daten nur einmal eingeben muss und
es dann gespeichert werden kann.
Ich denke mal das das Script in einer While schleife ausgeführt wird ,oder ?
Das macht es einfacher.

Das was ich aendere/ergaenze makiere ich mit Rot
Code:
[COLOR="red"]
While 1
dim $Frage[/COLOR]
$Frage = InputBox ("Frage", "Bitte hier den zu googelnden Begriff eingeben!"[COLOR="Red"],$Frage[/COLOR])

ShellExecute ("http://www.google.de")
MouseClick ("left", 324, 369 )
Send ($Frage)
Send ("{enter}")
[COLOR="red"]Wend[/COLOR]
Fals Das Script aber nur einmal ausgefuehrt wird.
solltest du die Suchbegriffer in einer .ini speichern.
Auf dem Gebiet bin ich aber leider noch nich so fit.
Sobald ich ne loesung habe ergaenze ich sie.

lg Klickboy
01/24/2011 17:12 omer36#3
Quote:
Originally Posted by TheWatchman View Post
Hey,

ich bin im Moment dabei aus Übungszwecken diverse kleine Bots zu
erstellen. Dabei sind mit einige Fragen aufgekommen. Ich hoffe, ihr könnt
mir bei der Beantwortung behilflich sein. Wenn ihr nicht die Antowrt auf alle Fragen wisst, wäre es sehr hilfreich, wenn ihr wenigstens eine/mehrere
andere beantwortet.

Meine Fragen:

- Wie mache ich, dass die Person, die in eine Inputbox Daten eingeben soll
(Beispielsweise ID und Passwort) die Daten nur einmal eingeben muss und
es dann gespeichert werden kann.

- Ich habe einfach mal so einen Google-Bot erstellt, der (wie der Name schon sagt) für einen googelt (z.B. wenn man gerade auf dem Desktop ist).

De Code dazu ist:

$Frage = InputBox ("Frage", "Bitte hier den zu googelnden Begriff eingeben!")

ShellExecute ("http://www.google.de")
MouseClick ("left", 324, 369 )
Send ($Frage)
Send ("{enter}")

-----------------------------------------------------------------------

Wie kann ich dazu eine leine Benutzeroberfläche erstellen (Dass der Bot etwas Farbenfroh ist und nicht nur dieses typische, langweilige
blau-weisse eckige Kästchen bietet..)

------------------------------------------------------------------------

Je nach Bildschirm - Größe ist das Google Eingabefeld an einer anderen Stelle.
Kann mir jemand PixelSearch erklären, damit der Bot das Eingabefeld erkennt?
Ich habe das in den Tutorials nicht so ganz verstanden...

------------------------------------------------------------------------

Würde mich über Tipps und Antworten sehr freuen.
Liebe Grüße,
TheWatchman
1. zum speichern der daten, einfach in einer .ini speichern und aufrufen...

hier 2 kleine bsp. :

2. wie du oben siehst, kannst du eine GUI erstellen (erstellen lassen)
google nach SciTE und installier es, (ist automatisch im autoit ordner)
und da findest du KODA(FormDesigner) damit kanns tdu ganz einfach GUI´s erstellen...

eine kleine verbesserung währe zb so:
PHP Code:
ShellExecute ("http://www.google.de")
WinWaitActive("Google - Mozilla Firefox") ;so wartet der bis es "bereis" ist
Sleep
(1000) ;zur sicherheit nochmal eine sec. ^^
Send("test") ;google suche ist ja automatisch activealso schrieben....
Send("{ENTER}"
wenn was unklar ist einfach fragen

MfG
01/24/2011 18:17 TheWatchman#4
Hey,

danke erstmal für die schnellen Antworten.
Da ich rellativ neu auf dem Gebiet bin kann ich mit .ini nicht viel anfangen...
Könntet ihr mir das bitte noch einmal genauer erklären?
Möglicherweise mit kleinen Beispielen, die nicht in einem großen Sript sind
sondern nur kleine Ausschnitte?
Hoffe, ich nerve euch nicht damit..
Liebe Grüße
01/24/2011 18:35 omer36#5
Quote:
Originally Posted by TheWatchman View Post
Hey,

danke erstmal für die schnellen Antworten.
Da ich rellativ neu auf dem Gebiet bin kann ich mit .ini nicht viel anfangen...
Könntet ihr mir das bitte noch einmal genauer erklären?
Möglicherweise mit kleinen Beispielen, die nicht in einem großen Sript sind
sondern nur kleine Ausschnitte?
Hoffe, ich nerve euch nicht damit..
Liebe Grüße

oben im spoiler sind doch 2 beispiele...


PHP Code:
IniWrite "filename""section""key""value" 
filename = der ort und name der ini, wo die geschrieben werden soll
section = die.. "hauptgruppe"
key = die ... "innere gruppe"
value = der inhalt

den speicher ort wähl ich mal so aus:

PHP Code:
$ini = @DesktopDir "\meineini.ini" ;auf dem dekstop mit dem namen"meineini.ini" 
also mach ich mal:
PHP Code:
IniWrite($ini"hauptgruppe""innere gruppe""MeinInhalt"
jetz sieht die .ini folgendermase aus:
Code:
[hauptgruppe]
innere gruppe=MeinInhalt


um jetz die .ini auszulesen, benutzen wir:
PHP Code:
IniRead "filename""section""key""default" 
filename = wieder der ort/name (unserem fall $ini)
dann wieder der rest...
default = kannste frei lassen ( "" )


also:

PHP Code:
$read IniRead($ini"hauptgruppe""innere gruppe"""

also hab ich jetz:

PHP Code:
$inhalt InputBox("","was soll in der ini stehen?")
$ini = @DesktopDir "\meineini.ini"
$write IniWrite($ini"hauptgruppe""innere gruppe"$inhalt)
$read IniRead($ini"hauptgruppe""innere gruppe"""
kannst es jetz zb in einer msgbox ausgeben...:

PHP Code:
MsgBox("","","in der ini steht nun: " $read

schau dir die hilfe an, hilft vllt auch ;)
F1 drücken und suchen, oder dein befehl markieren und 'F1 drücken um direkt hin zu kommen.
01/24/2011 19:34 TheWatchman#6
Vielen Dank!
01/25/2011 14:15 Jonas_93#7
Um die Sache mit dem Google-Suchvorgang noch zu verbssern, könntest du dich mal mit der IE.au3 oder der FF.au3 auseinander setzen.
Es gibt nämlich die Möglichkeit, Objekte aus Webseiten direkt zu steuern, ohne Pixelsearch oder Mouseclicks.

Kleines Beispielscript für ne Googlesuche:

Code:
#include <FF.au3>


$suche = Inputbox("","")
_FFStart("http://www.google.de/firefox?client=firefox-a&rls=org.mozilla:de:official") ; startet Mozilla Firefox und geht direkt auf google.de
_FFLoadWait() ; wartet bis es geladen hat
_FFSetValue($suche, "q" , "name") ; besetzt die Inputbox mit der gewünschten Suche (dazu unten)
_FFFormSubmit() ; startet die Suche -verlgiechbar mit einer "Enter"-Eingabe
Sollte soweit eigentlich alles klar sein, bis auf den "_FFSetValue"-Teil:

Diese Funktion ist warscheinlich das einzige, womit man Probleme haben könnte.
Deren erster Paramter beinhaltet den neuen Wert den du in eine Inputbox einfügen willst.
Der 2., ist der (in diesem Fall) "Name" der Input-Box. Diese Information musst du dir aus dem Quelltext fischen. Du kannst dir dabei viel Arbeit sparen, wenn du die Seitensuch-Funktion von Firefox verwendest.
Du gehst also auf die Seite (google.de) und lässt dir den Quelltext anzeigen.
Dann aktivierst du die Suchbar (F5) und gibst "input" ein.
Du wirst warscheinlich viele Ergebnisse bekommen.
Bei google kannst du dich jedoch nach dem Text "Suche:" orientieren; der ist nämlich unmittelbar nach der Inputbox (Google-Seite selbst betrachtet) - daher wird er auch unmittelbar hinter der Inputbox im Quelltext stehen.
In unserem Fall sieht das so aus :
Code:
value=hp><[COLOR="Blue"]input id=sf maxLength=256 name=q[/COLOR] value="" size=50><br><font size=-1>[COLOR="Red"]Suche:[/COLOR]
blau der Teil den wir gesucht haben
rot das Textfeld mit "Suche:"

Nun hast du diverse Angaben, wie du deine Inputbox beschreiben kannst:
(In unserem Fall)

einmal -> id=sf
zweimal -> name=q

Ich hab mich oben für den Namen entschieden. Ich hätte jedoch auch genausogut die Id angeben können, dafür hätte ich jedoch den 3. Parameter auch auf "id" stellen müssen.
Wie man sieht, beschreibt der 3. Paramter den 2. Paramter und MUSS daher auch vorhanden und korrekt sein.

Ich hoffe mal, das wurde jetzt recht verständlich erklärt :D

Die FF.au3 googlest du einfach mal. Sollte schnell gefunden sein.

Bei der IE.au3 ist das im Prinzip genau das selbe nur halt mit dem InternetExplorer. Hat Vorteiel als auch Nachteile :P

Hoffe ich konnt dir doch noch ein wenig weiterhelfen

MFG Jonas
01/25/2011 14:50 omer36#8
warum so kompliziert, für ne einfach google suche?

PHP Code:
$suche InputBox("suche...""was willst du googln??")
ShellExecute("http://www.google.de/#hl=de&q="&$suche
reicht schon...
01/25/2011 14:55 guapopaul#9
Das was in der Inputbox eingegeben wurde kannst du in einer .ini Datei speichern!

[Only registered and activated users can see links. Click Here To Register...] Kapitel Datenverwaltung!

Das Graphical User Interface = GUI kannst du mit KODA erstellen. Dann kannst du die Benutzeroberfläche so bunt gestalten wie du möchtest.
01/25/2011 17:11 TheWatchman#10
Vielen Dank den ganzen Antworten.
Auch für die Links!
TheWatchman


Edit:

Ich habe jetzt allerdings ein Problem mit KODA.
Ich habe mir ein Tutorial durchgelsesen.
Aber ich schaffe es nicht folgndes zu coden:

Das die Frage gestellt wird (vom User)
Und man dann an Hand von 2 Buttons auswählen kann,
ob man entwerder
-Google
oder
-Yahoo
als Suchmaschine nimmt.

Mein Code sieht igrendwie so aus:

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 429, 207, 287, 232)
$Button1 = GUICtrlCreateButton("Button1", 112, 168, 75, 25)
$Button2 = GUICtrlCreateButton("Button2", 224, 168, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 429, 207, 287, 232)
$Button1 = GUICtrlCreateButton("Google", 112, 168, 75, 25)
$Button2 = GUICtrlCreateButton("Yahoo", 224, 168, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
$Frage = InputBox ("Frage", "Bitte hier den zu googelnden Begriff eingeben!")

Case $Button1
ShellExecute ("http://www.google.de")
WinWaitActive ("Google - Mozilla Firefox")
MouseClick ("left", 324, 369 )
Send ($Frage)
Send ("{enter}")

Case $Button2
ShellExecute ("http://www.yahoo.de")
WinWaitActive ("Yahoo! Deutschland - Mozilla Firefox")
MouseClick ("left", 324, 369 )
Send ($Frage)
Send ("{enter}")
Exit

EndSwitch
WEnd

EndSwitch
WEnd

Hoffe, ihr könnt mir da irgendwie helfen.
Liebe Grüße