[AutoIt] Frage/Antworte Thread

03/25/2008 21:10 marcopolo1990#1
In diesem Theard, können Fragen rund um Bots für Metin2 mit AutoIt erfragt werden
dazu gehört auch das complimieren und das au3info tool

ausgeschlossen davon sind GUI's (erstellung) und ein Fischöffner Bot

Falls ihr also eine frage habt, lest euch zuerst den Theard durch, um sicherzu gehen dass die frage nicht schonmal gestellt worden ist!

und bitte spamt mich nicht immer mit euren script probleme bei icq voll
ich komm kaum noch zu anderen sachen, als euch zu helfen
also bitte nurnoch im notfall bei mir per icq melden

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
03/25/2008 23:13 King-Style#2
Quote:
Send("{RIGHT}{ENTER}")
Man kann doch auch so : Send("!n")

Oder Irre ich mich da Marco?
03/26/2008 07:47 marcopolo1990#3
Quote:
Originally Posted by King-Style View Post
Man kann doch auch so : Send("!n")

Oder Irre ich mich da Marco?
! und n
entspricht
ALT + n

also was ganz anderes xD
außerdem gewöhnt euch mal an flags zu machen

Send ( "Dieser Text wird ausgeschrieben auch wenn diese zeichen drinn sind !^+# etc..." , 1)

1 am ende heißt alles ausschreiben

und eine 0 am ende dann würde er schaun, ob die symbole eine bedeutung für was anderes haben

(tut nicht von mir sondern von autoit)

Die "Send" Befehlssyntax ist ähnlich der von ScriptIt und dem Visual Basic "SendKeys" Befehl. Die Zeichen werden wie geschrieben gesendet, mit Ausnahme der folgenden Zeichen:

'!'
Dies weist AutoIt an den ALT Tastendruck zu senden, folglich würde Send("This is text!a") die Tastendrücke "This is text" senden und dann die Tastendrücke "ALT+a".

N.B. Einige Programme sind sehr empfindlich bezüglich Großbuchstaben und ALT Taste, z.B. "!A" ist unterschiedlich zu "!a". Der erste Ausdruck bewirkt ALT+SHIFT+A, der zweite ist ALT+a. Im Zweifelsfall benutze Kleinschreibung!

'+'
Dies weist AutoIt an den SHIFT (=UMSCHALT) Tastendruck zu senden, folglich würde Send("Hell+o") den Text "HellO" senden. Send("!+a") würde "ALT+SHIFT+a" senden.

'^'
Dies weist AutoIT an den CONTROL (=STRG =STEUERUNG) Tastendruck zu senden, folglich würde Send("^!a") "CTRL+ALT+a" senden.

Bemerkung: Einige Programme reagieren sehr empfindlich auf Groß-/Kleinschreibung und CTRL Tastendücke, z.B. "^A" ist unterschiedlich zu "^a". Der erste Ausdruck sendet CTRL+SHIFT+A, der zweite sendet CTRL+a. Im Zweifesfall benutze Kleinschreibung!

'#'
Die hash (=Raute =Doppelkreuz) Taste simuliert das Drücken der Window Taste. Folglich würde Send("#r") Win+r senden und damit die Run Dialogbox (Auführen-Dialog) aufrufen.

Man kann "SendCapslockMode" so einstellen, dass die CAPSLOCK (FESTSTELLTASTE) Taste beim start einer "Send" Operation abgeschaltet wird und nach beenden wieder zurückgesetz wird.
Wie auch immer, wenn ein Anwender die SHIFT Taste beim Beginn einer "Send" Funktion gedrückt hält, könnte der Text in Großbuchstaben gesendet werden.
Eine Vermeidungsmöglichkeit ist Send("{SHIFTDOWN}{SHIFTUP}") vor der eigentlichen "Send" Operations zu senden.

Bestimmte spezielle Tastendrücke müsssen in gschweiften Klammern gesendet werden:

Bemerkung: Windows erlaubt nicht das senden der "CTRL-ALT-DEL" Tastenkombination!
Send Befehl (wenn Flag=0) Resultierende Tastendruck
{!} !
{#} #
{+} +
{^} ^
{{} {
{}} }
{SPACE} Leertaste
{ENTER} Eingabetast auf der Haupttastatur
{ALT} ALT
{BACKSPACE} or {BS} Rücktaste
{DELETE} or {DEL} Entfernen (Entf)
{UP} Nach-Oben-Taste
{DOWN} Nach-Unten-Taste
{LEFT} Nach-Links-Taste
{RIGHT} Nach-Rechts-Taste
{HOME} POS1
{END} ENDE
{ESCAPE} or {ESC} ESCAPE
{INSERT} or {INS} EINFÜGEN (EINFG)
{PGUP} Bild-Auf
{PGDN} Bild-Ab
{F1} - {F12} Funktions Tasten
{TAB} TABULATOR
{PRINTSCREEN} Drucken
{LWIN} Linke Windows Taste
{RWIN} Rechte Windows Taste
{NUMLOCK on} Numerisches Tastenfeld (an/aus/wechseln)=(on/off/toggle)
{CAPSLOCK off} FESTSTELLTASTE (an/aus/wechseln)=(on/off/toggle)
{SCROLLLOCK toggle} ROLLEN (an/aus/wechseln)=(on/off/toggle)
{CTRLBREAK} Ctrl+Break = STRG+UNTERBRECHUNG
{PAUSE} PAUSE
{NUMPAD0} - {NUMPAD9} Numpad Ziffern (Numpad = Numerisches Tastenfeld)
{NUMPADMULT} Numpad Multiplizieren
{NUMPADADD} Numpad Addieren
{NUMPADSUB} Numpad Subtrahieren
{NUMPADDIV} Numpad Dividieren
{NUMPADDOT} Numpad Punkt
{NUMPADENTER} Numpad Eingabe Taste
{APPSKEY} Windows Programm Taste
{LALT} Links ALT Taste
{RALT} Rechts ALT Taste
{LCTRL} Links CTRL Taste
{RCTRL} Rechts CTRL Taste
{LSHIFT} Linke Shift Taste
{RSHIFT} Rechte Shift Taste
{SLEEP} Computer PAUSE Taste
{ALTDOWN} Hält die ALT Taste gedrückt bis {ALTUP} gesendet wird
{SHIFTDOWN} Hält die SHIFT Taste gedrückt bis {SHIFTUP} gesendet wird
{CTRLDOWN} Hält die CTRL Taste gedrückt bis {CTRLUP} gesendet wird
{LWINDOWN} Hält die linke Windows Taste gedrückt bis {LWINUP} gesendet wird
{RWINDOWN} Hält die rechte Windows Taste gedrückt bis {RWINUP} gesendet wird
{ASC nnnn} Sendet die ALT+nnnn Tastenkombination
{BROWSER_BACK} Nur 2000/XP: Wählt den Browser "Zurück" Button
{BROWSER_FORWARD} Nur 2000/XP: Wählt den Browser "Vorwärts" Button
{BROWSER_REFRESH} Nur 2000/XP: Wählt den Browser "Aktualisieren" Button
{BROWSER_STOP} Nur 2000/XP: Wählt den Browser "Stop" Button
{BROWSER_SEARCH} Nur 2000/XP: Wählt den Browser "Suche" Button
{BROWSER_FAVORITES} Nur 2000/XP: Wählt den Browser "Favoriten" Button
{BROWSER_HOME} Nur 2000/XP: Startet den Browser und geht zur Startseite
{VOLUME_MUTE} Nur 2000/XP: Stellt Lautsprecher auf Stumm
{VOLUME_DOWN} Nur 2000/XP: Reduziert die Lautstärke
{VOLUME_UP} Nur 2000/XP: Steigert die Lautstärke
{MEDIA_NEXT} Nur 2000/XP: Wählt den nächsten Track im Media Player
{MEDIA_PREV} Nur 2000/XP: Wählt den vorhergehenden Track im Media Player
{MEDIA_STOP} Nur 2000/XP: Stoppt Media Player
{MEDIA_PLAY_PAUSE} Nur 2000/XP: Wiedergabepause Media player
{LAUNCH_MAIL} Nur 2000/XP: Startet die Standard email Anwaendung
{LAUNCH_MEDIA} Nur 2000/XP: Startet den Media Player
{LAUNCH_APP1} Nur 2000/XP: Startet Anwender Programm 1
{LAUNCH_APP2} Nur 2000/XP: Startet Anwender Programm 2

Um den ASCII Wert A zu senden, der durch drücken von ALT+065 auf dem numerischen Tastenfeld erzeugt wird, benutze
Send("{ASC 065}")

Bei einem 2 ziffrigem ASCII Code muss eine 0 vorangestellt werden.

Um UNICODE Zeichen zu senden muss der Zeichencode eingegeben werdeb. Z.B. wird so ein chinesisches Zeichen gesendet
Send("{ASC 2709}")

Einzelne Tastendrücke können auch wiederholt werden, z.B.
Send("{DEL 4}") ;Drückt die ENTF Taste 4 mal
Send("{S 30}") ;Sendet 30 'S' Zeichen
Send("+{TAB 4}) ;Drückt SHIFT+TAB 4 mal

Um eine Taste gedrückt zu halten (Allgemein nur brauchbar für Spiele)
Send("{a down}") ;Hält die A Taste gedrückt
Send("{a up}") ;Loslassen der A Taste

So wird der Status für Capslock, Numlock und Scrolllock gesetzt.
Send("{NumLock on}") ;Schaltet NUMLock ein
Send("{CapsLock off}") ;Schaltet die CapsLock Taste aus
Send("{ScrollLock toggle}") ;Wechselt den Status von ScrollLock

Soll eine Variable für die Anzahl von Wiederholungen genutzt werden, dann versuche
$n = 4
Send("+{TAB " & $n & "}")

Soll der ASCII Wert A 4 mal gesendet werden, dann versuche
$x = Chr(65)
Send("{" & $x & " 4}")

Die meisten Notebooks haben auf der Tastatur eine spezielle Fn Taste. Diese Taste kann nicht simuliert werden.

Beachte, wird der Flag Parameter auf 1 gesetzt, werden keine der zuvor angeführten "speziellen" Tastendrücke gesendet. Das ist praktisch wenn einiger Text, kopiert von einer Variablen, genauso wie geschrieben gesendet werden soll.

Z.B., öffne Ordneroptionen (Explorer -> Extras -> ...) und versuche folgendes:
Send("{TAB}") Navigiere zum nächsten Control (Button, Checkbox, usw.)
Send("+{TAB}") Navigiere zum vorhergehenden Control.
Send("^{TAB}") Navigiere zum nächsten WindowTab (in einem Dialog mit Tabs)
Send("^+{TAB}") Navigiere zum vorhergehenden WindowTab.
Send("{SPACE}") Kann benutzt werden um eine Checkbox (Kontrollkästchen) zu makieren oder ein Button anzuklicken.
Send("{+}") Aktiviert/markiert üblicherweise eine Checkbox (wenn es wirklich eine Checkbox ist.)
Send("{-}") Deaktiviert eine Checkbox.
Send("{NumPadMult}") Expandiert rekursiv Verzeichnisse in einem SysTreeView32.

Benutze Alt-key Kombinationen um auf Menüpunkte zuzugreifen. Also, öffne Notepad und versuche folgendes:
Send("!d") Sendet Alt+d, die Zugriffstaste auf Notepad's Datei Menü.

Send("{DOWN}") Geht runter im Menu.
Send("{UP}") Geht rauf im Menu.
Send("{LEFT}") Geht links zu einem neuen Menu oder expandiert ein Untermenü.
Send("{RIGHT}") Geht rechts zu einem neuen Menu oder kollapsed ein Untermenü.
Siehe Windows' Help--drücke Win+F1--für eine komplette Liste von Tastatur "shortcuts", wenn du die Bedeutung von Alt+F4, PrintScreen, Ctrl+C, .... nicht kennst.



Siehe auch
SendAttachmode (Option), SendKeyDelay (Option), SendKeyDownDelay (Option), ControlSend



Beispiel


Send("#r")
WinWaitActive("Run")
Send("notepad.exe{Enter}")
WinWaitActive("Untitled -")
Send("Today's time/date is {F5}")
03/26/2008 15:24 klo30#4
marcopolo danke das dus weiter machst xD ...

sollte eigentlich mein Guide sein ^^

aber mir egal ..
03/26/2008 17:46 marcopolo1990#5
komm wir machen hier neues wiki auf xD
jeder schreibt sein beitrag rein ;)
03/26/2008 21:14 klo30#6
könn wa machen aber könn wia uns nomma in icq untertexten geht um die sources und so und das wa du so über mich geredet hast ^^
03/26/2008 21:31 marcopolo1990#7
PM me
damit kriegste mich eher
03/29/2008 23:45 UsHacker#8
Wie kann ich es erreichen das ich das ganze script immer wiederhole zb. für nen pick bot?
03/30/2008 07:31 marcopolo1990#9
While (1)
;trage hier den code ein
Wend

oder wenn du mehrere benutzen willst
While (1)
;Code
While (1)
If $Bla = 1 then
;code
exitloop
Endif
wend
wend
03/30/2008 12:12 anno2008#10
Oder For...Next




For $i = 1 to 5 ;führt den Code 5 mal aus.
;dein Code
Next
;dein Code

Alle Schleifen im Überblick mit Beispielen:
[Only registered and activated users can see links. Click Here To Register...]
04/08/2008 19:13 klo30#11
Huhu ,

also ich habe mir mal vorgenommen euch ein Paar grundregelnde Befehle in AutoIt zu zeigen.

Mit diesen Befehlen könnte man sich auch schon ein Paar Bots selber machen.

Als erstes haben wir die HotKeySet Funktion diese ist dazu da um eine Taste festzulegen mit dem man den Bot z.b. Pausieren Starten oder auch Beenden kann.


PHP Code:
HotKeySet("Hier eine Beliebige Taste" "Wie die Funktion heißen soll"
Was bedeutet dieses jetzt nehmen wir mal eine Taste und benennen die Funktion das sieht dann so aus:

PHP Code:
HotKeySet "T" "Botstarten" 
Jetzt haben wir schonmal einen HotKey womit wir den Bot Starten können.

Nun kommen wir dazu das wir diesen HotKey nutzen dazu machen wir folgendes:

PHP Code:
HotKeySet "T" "Botstarten")

Func Botstarten() 
Wir haben jetzt den Funktions anfang .
Func steht für Funktion .
Das "Botstarten" haben wir oben aus dem HotKeySet. Somit weiß AutoIt das man diese Funktion den HotKeySet "Botstarten zugewiesen haben.

Nun aber wir haben ja nur den Anfang der Func also hauen wir da mal ein Paar Befehle rein ) . Das sieht dann so aus.

PHP Code:

HotKeySet 
"T" "Botstarten")

Func Botstarten()
Sleep(1000)  
Send("Hier könnte man einen Text schreiben")
EndFunc 
So nun haben wir hier 3 Neue Befehle diese sind :

Send
Sleep
EndFunc

Was bedeuten diese ?

Send : Bedeutet er sendet Buchstaben Zahlen und alles weitere auf der Tastatur.
Sleep : Das bedeutet er macht eine Pause (1000 = 1 Sec )
EndFunc : Mit disem Befehl weiß AutoIt das hier die Funktion zuende ist.
-------------------

So aber das waren ja nicht alle Befehle.
Mit AutoIt kann auch Programme öffnen.
Dies geht so ..

PHP Code:

HotKeySet 
"T" "Botstarten" )  

Func Botstarten() 
Notepad starten
Run
("notepad")

Wartenbis Notepad gestartet und aktiv ist
WinWaitActive
("Unbenannt - Editor")

Einige Tastendrücke senden
Send
("{TAB}Das ist ein Test , das müsste jetzt in Notepad stehen")

eine Pause
Sleep
(1500)

Fenster schließen
WinClose
("Unbenannt""")

nach rechts und Enter (drückt "Nein" im Speichern-Dialog)
Send("{RIGHT}{ENTER}"
So was dies macht steht ja schon mit im Code.

Das waren Funktionen ..

In den Nächsten Tagen oder heute folgt das Thema Variablen.

Ich hoffe das Tut ist ausführlich und ihr versteht des =) was ich ja mal hoffen will .

Wer fragen dazu hat kann sich hier im Thread melden.

Mfg

klo30
04/08/2008 19:17 klo30#12
o_O erst mal danke marcopolo das du mein Thread genommen hast :)

Ich werde hier natürlich auch mithelfen wenn hier net der marco schneller ist

Mfg

klo30

EDIT// Wieso issn der Thread jetzt so durch einander ?
04/08/2008 19:20 marcopolo1990#13
naja kriegs net so ganz hin beide theards in einen zu packen xD
sollte jetzt aber so gehen
und danke das du mithilfst ;)
04/08/2008 19:43 klo30#14
jo kein ding

auf jeden fall sieht der lustig aus der thread ^^
04/08/2008 19:59 kl00#15
mal eine frage wie kann man sein bild endern??? ich meine das blöde A bei den au3 datein