ControlSend Problem

11/07/2010 20:21 MoepMeep#16
Quote:
Originally Posted by Belur View Post
:D Gibts überhaupt nen Buch zu Autoit.?

Zu andren Sprachen gibts ja mehrere aber hab noch nie von nem Buch zu AutoIt gehört.
Bezweifel ich stark, das es dazu irgendwas gibt. Deshalb ja zu einer anderen Sprache :p
11/07/2010 20:29 Belur#17
Hmm ja. Werd ich vllt mal machen.

Vllt nen Buch zu c++. Hab mich da sowieso mal für interessiert.
kA wie groß die Ähnlichkeit da zu AutoIt ist.

Machen grad in im Info Kurs, Java und ich muss sagen da erkenn ich so gut wie keine Gemeinsamkeiten zu AutoIt :P

Nja. Mal schauen.
11/07/2010 20:41 MoepMeep#18
AutoIt nutzt in meinen Augen eine sehr verkrüppelte Syntax. Zwischen C++ und AutoIt wirst du keine wirkliche ähnlichkeit erkennen. Aber sagen wir mal so, alles was in AutoIt geht, geht in C++ auch und noch deutlich mehr :p
11/07/2010 20:47 Belur#19
Deutlich mehr in AutoIt oder in C++?
11/07/2010 20:51 lolkop#20
Quote:
Originally Posted by Belur View Post
:D Gibts überhaupt nen Buch zu Autoit.?

Zu andren Sprachen gibts ja mehrere aber hab noch nie von nem Buch zu AutoIt gehört.
autoit besitzt eine so einfache syntax, das kein buch hierfür nötig ist.
willst du wirklich die syntax von autoit erlernen, musst du dir die F1 taste auf deiner tastatur suchen, und wenn scite offen ist einfach mal die taste drücken.
11/07/2010 20:54 Belur#21
Muss auch sagen, dass AutoIt im Vergleich zu Java viel leichter zu verstehen ist.

Allerdings gibts dafür auch weniger Hilfen, falls man dann doch mal stecken bleibt.
11/07/2010 21:00 MoepMeep#22
Quote:
Originally Posted by Belur View Post
Deutlich mehr in AutoIt oder in C++?
Deutlich mehr in C++ ;)


@lolkop Die Syntax lernen ist in keiner Sprache ein Problem. Jemand der eine Sprache gut beherrscht, wird auch mit anderen Sprachen keine größeren Probleme haben. Das logische dahinter ist das, was man lernen muss ;)
11/07/2010 21:10 Belur#23
Ich mein. Wie habt ihr das alle gelernt?:D

Man kann sich ja nicht alles aus anderen Sprachen herholen.
Und wenns keins Buch ect gibt bleiben ja fast nur noch TuTs und selbst rumprobieren.

Oder wie habt ihr angefangen?O.o
11/07/2010 21:22 MoepMeep#24
Quote:
Originally Posted by Belur View Post
Ich mein. Wie habt ihr das alle gelernt?:D

Man kann sich ja nicht alles aus anderen Sprachen herholen.
Und wenns keins Buch ect gibt bleiben ja fast nur noch TuTs und selbst rumprobieren.

Oder wie habt ihr angefangen?O.o
Ich kann kein AutoIt :p

Direkt mit C++ angefangen :p
11/07/2010 21:23 ZaZiZu#25
Quote:
Originally Posted by Belur View Post
Ich mein. Wie habt ihr das alle gelernt?:D

Man kann sich ja nicht alles aus anderen Sprachen herholen.
Und wenns keins Buch ect gibt bleiben ja fast nur noch TuTs und selbst rumprobieren.

Oder wie habt ihr angefangen?O.o
also ich habe zuerst mit MsgBoxen angefangen, als es mir zu langweilig wurde machte ich Send/Mouseclick-bots, sowas simples halt, irgendwann war halt nix mehr los, hatte ne lange pause gemacht und dann gleich mit Gui, Schleifen und Arrays angefangen ^^ alles gleich im 1ten skript nach monaten war ein wenig zu viel, hab bisschen hier rumgefragt, nette und korrekte antworten gekriegt und nun bin ich bereit weiter zu gehen (grad meinen 1ten simplen packetbot gemacht, naja, fixes noch nicht ganz fertig)

Tuts lese ich nur aus langeweile und wenn ich mal was neues machen will
z.B. hab ich ein tut über packet-bots von Shadow gelesen und gleich darauf diesen angefangen ^^ Arrays und GUIs hab ich hauptsächlich aus den Hilfeseiten von AutoIt
11/07/2010 22:03 Belur#26
Werd mal schauen wie ich weiter mache. Vllt schau ich mir echt mal Arrays ect näher an wenn ich was vernünftiges finde.

Auf der andren Seite mach ich auch gern was mit Photoshop. Wechselt immer mal, wo ich grad etwas aktiver bin. Nja.
11/07/2010 22:40 MoepMeep#27
Quote:
Originally Posted by Belur View Post
Werd mal schauen wie ich weiter mache. Vllt schau ich mir echt mal Arrays ect näher an wenn ich was vernünftiges finde.

Auf der andren Seite mach ich auch gern was mit Photoshop. Wechselt immer mal, wo ich grad etwas aktiver bin. Nja.
Arrays sind ziemlich einfach zu verstehen. Stell dir ein Array einfach als eine Reihe von einem Schachfeld vor.
Code:
[][][][][][][][]
Jedes dieser Klammerpaare ist ein Element(Feld) des Arrays.

Code:
[1][2][3][4][5][6][7][8]
 0   1   2  3  4  5   6   7
Über den Index kannst du die Einzelnen Elemente ansteuern. Hierbei wird allerdings mit 0 angefangen zu zählen ;)
Ein Array wird in der Regel so deklariert:
Code:
datentyp variablenname[anzahl_elemente]
Natürlich in der Sprachspezifischen Syntax.
Code:
int array[8]
Das wäre dann ein Array mit 8 Elementen des Typen Int, der Index dementsprechend 0 bis 7. Ein array sind sozusagen mehrere Variablen zu einer Zusammengefasst.
Code:
int a1
int a2
int a3
int a4
kann also durch
Code:
int a[4]
ersetzt werden.

Dann gibt es noch Mehrdimensionale arrays. Ein 2-Dimensionales Array kannst du dir als ganzes Schachfeld vorstellen
Code:
[][][][][][][][]
[][][][][][][][]
[][][][][][][][]
[][][][][][][][]
[][][][][][][][]
[][][][][][][][]
[][][][][][][][]
[][][][][][][][]
Währned ein normales Array über
Code:
variablenname[index]
angesprochen wird, wird ein 2-Dimensionales array so angesprochen
Code:
 variablenname[index1][index2].
index1 bestimmt die Reihe, index2 die Spalte.



Das ist Fachlich an der ein oder anderen Stelle bestimmt nicht unbedingt ganz richtig, aber ich hoffe verständlich :x
11/08/2010 14:15 Belur#28
Okay. Und wofür sind die genau nützlich? Bze was haben Arrays genau mit nem Bots zu tun und wo sind sie da enthalten? O.o
11/08/2010 16:37 lolkop#29
Quote:
Originally Posted by Belur View Post
Okay. Und wofür sind die genau nützlich? Bze was haben Arrays genau mit nem Bots zu tun und wo sind sie da enthalten? O.o
naja mit arrays kannst du ganz einfach gesagt ganz viele sachen in einer Variablen speichern :P Der vorteil hierbei sollte klar sein.
wenn du 5 variablen hast, musst du alle einzeln ansprechen. hast du aber ein 1diemnsionales array mit 5 werten:
Code:
$array[5]
so kannst du diese ja per
Code:
$array[0] = ...
$array[1] = ...
$array[2] = ...
$array[3] = ...
$array[4] = ...
ansprechen. (ganz wichtig, der index beginnt in autoit immer bei 0!)

wie du siehst ist hierbei jeweils nur der index unterschiedlich.
dh du kannst das ganze sehr gut in schleifen abarbeiten:
Code:
For $i=0 To 4
    $array[$i] = ...
Next
hier mag das keinen allzugroßen unterschied machen, aber stell dir mal vor du hast jetzt 1000 oder mehr verschiedene sachen, die du so verwalten kannst/willst

ob du da jetzt jede variable einzeiln abfragst/beschriebst, oder das ganze in einer 3 zeilen schleife erledigst, macht das schon einen unterschied von 1000 zeilen code.


hier vielleicht nochmal ein kleines beispiel um zu zeigen das arrays noch andere vorteile haben...

stell dir vor du willst ein ganz einfaches 1-dimensionales "spiel" erstellen.
ums wirklich leicht verständlich zu halten stell dir vor du hast 3 räume, die alle hintereinander liegen.
und es gibt nur eine funktion, mit der du einen raum weiter gehst.
das ganze könntest du ohne arrays, mit ihren leicht handlebaren index werten ja so realisieren:
Code:
; definiere dir 3 räume, die hintereinander angeordnet sind
; lege eine variable fest, für den aktuellen standort
; lege eine variable fest, die anzeigt, ob man weiter gehen will
Dim $raum1='Raum1', $raum2='Raum2', $raum3='Raum3', $aktuell=$raum1, $gehe_weiter=False
; lege einen hotkey an für das weiter gehen (hier rechte pfeiltaste)
HotKeySet('{right}', 'weita')

While 1
	ToolTip('Du bist jetzt in '&$aktuell)
	; gehe einen raum weiter
	; nach raum 3 ist man wieda in raum1
	; nach dem weitergehen, weitergehen wieder auf falsch setzen
	If $aktuell=$raum1 And $gehe_weiter Then
		$aktuell=$raum2
		$gehe_weiter=False
	ElseIf $aktuell=$raum2 And $gehe_weiter Then
		$aktuell=$raum3
		$gehe_weiter=False
	ElseIf $aktuell=$raum3 And $gehe_weiter Then
		$aktuell=$raum1
		$gehe_weiter=False
	EndIf
	Sleep(10)
WEnd

Func weita()
	; sage dem script, das es weiter gehen soll
	$gehe_weiter = True
EndFunc
und hier nochmal zum vergleich das ganze mit einem $raum[3] array gelöst:
Code:
Dim $raum[3] = ['Raum1', 'Raum2', 'Raum3'], $aktuell=0, $gehe_weiter=False
HotKeySet('{right}', 'weita')

While 1
	If $gehe_weiter Then
		$aktuell+=1
		$gehe_weiter=False
		If $aktuell>2 Then $aktuell=0
	EndIf
	ToolTip('Du bist jetzt in '&$raum[$aktuell])
WEnd

Func weita()
	; sage dem script, das es weiter gehen soll
	$gehe_weiter = True
EndFunc
wie du siehst, muss bei dem arbeiten mit arrays nicht eine variable abgefragt werden. es kann direkt nur mit den index werten gearbeitet werden.
der einzig wichtige punkt ist, das man aufpasst, das man nicht aus dem array hinaus springt.

wenn du das "spiel" jetzt auf 2 dimensionen erweitern würdest (also das du zb vorwärts, rückwärts, nach rechts und nach links gehen kannst.

mit einem 2d array wären das genau eine zeile mehr.
ohne arrays, hätte man aus n zeilen code n^2 zeilen code gemacht..

für jede dimension die man nun hinzufügt, würde ohne arrays die die potenz immer um eins steigen, und mit arrays, die anzahl der zeile um eine steigen.
11/08/2010 21:12 Belur#30
Hey. Mal wider Richtung Topic etwas:

Hatte grad in der dt. Hilfe etwas zu ControlSend nachgelesen und bin auf diesen Ausschnitt gestoßen:

PHP Code:
$handle WinGetHandle
ControlSend
($handle""""" AbCdE"
Mir gehts eigentlich darum, dass in dem ControlSend Befehl als Title das $handle angeben wird.

Ist das also möglich anstatt den Titel des Fensters nur den Handle anzugeben.
Würd mir nen ganzen Schritt weiterhelfen. =)

Lg