![]() |
Bot Programmierkurs by NetMax
Da ja jetzt die Zeit gekommen ist um hier Tutorials zu veröffentlichen werf ich gleich meine auch auf den Markt.
In diesen Tutorial werden wir schrittweise einen Bot erstellen: Programmierkurs by NetMax - LEKTION I Installation Willkommen bei meinem Programmierkurs für die Sprache AutoIT. AutoIt bietet die Möglichkeit leicht BOTS zu programmieren. Ziel dieses Programmierkurses ist alle nötigen Fähigkeiten zu erlernen um einen Bot wie z.B. NetMax's NosBot selbst programmieren zu können. 1a) INSTALLATION Wir benötigen AUTOIT ([Only registered and activated users can see links. Click Here To Register...]) SciTE ([Only registered and activated users can see links. Click Here To Register...]) Kode Form Designer([Only registered and activated users can see links. Click Here To Register...]) 1b) Installiert die 3 Programme. 1c) Für was brauchen wir das alles? AutoIT Bei Autoit handelt es sich um die Kernkomponten die wir zu übersetzen einer AU3 Datei benötigen. SciTE Der Editor der uns erlaubt komfortabel AutoIT Scripte zu erstellen Koda Damit können wir Dialoge designen (also die graphische Benutzeroberfläche) |
Programmierkurs by NetMax - LEKTION II Grundstruktur und erstes Programm
Da wir ja jetzt über alle benötigten Programme verfügen, kann es nun endlich losgehen.
Aufgabestellung für diese Lektion: Entwickeln Sie ein Programm das die ganze zeit text in das aktive Fenster senden. Zwischen den Tastdendrücken sollen 1,5 Sekunden Pause sein. Was sagt uns die Angabe: "das die ganze zeit" --> wir brauchen eine schleife. Was ist ein Schleife: Ein schleife wiederholt Anweisungen die in ihr stehen bis eine Bedingung erfüllt ist: Code:
While 1=1Was sagt uns die Angabe: text in das aktive Fenster senden Hierzu gibt es in Autoit einen Befehl: Send("TEXT") Damit senden wir Text in das aktive Fenster... Was sagt uns die Angabe: Zwischen den Tastdendrücken sollen 1,5 Sekunden Pause sein Wir müssen unser Programm nach einem Tastdruck 1,5 Sekunden schlafen legen(weil sonst wiederhollt sich die Schleife immer wieder ohne Pause) Hierzu verwenden wir: sleep(Zeit) Besonders wichtig ist hierbei das die Zeit in Millisekunden angegeben werden muss(1 sek = 1000 Millisekunden) Für unser Beispiel heißt das 1,5 Sekunden = 1500 Millisekunden also sleep(1500) Da wir jetz alles wissen um unser Programm zu entwicklen kann es nun los gehen.
Code:
While 1=1Code:
While 1=1Code:
While 1=17.) Jetzt braucht ihr nur mehr auf F5 drücken und euer Programm wird ausgeführt(F5 ist das selbe wie ein Klick auf Tools/Go) 8) Nun wird alle 1,5 Sekunden "asdf" an das Fenster im Vordergrund gesendet 9) Zum Stoppen des Programm macht ihr einen Rechtsklick auf den Blauen Kreis mit dem A(das Autoit-Symbol) und wählt "Exit". 10) FERTIG! Ein konkrettes Beispiel oder wofür bracu ich das jetzt? Das braucht ihr z.B. für einfache NosTale Bots: EIn Bot der alle 0,5 Sekunden einmal die Leertaste drückt(was in Nostale ein Autofight-Bot wäre): Code:
While 1=1 |
Programmierkurs by NetMax - LEKTION III Senden im Hintergrund, Variablen und Kommenta
Da wir jetzt schon Zeichen an Programme senden können wäre es doch schön wenn wir nebenbei z.B. Internet surfen könnten. Also müssten wir Zeichen an Programme senden die im Hintergrund ausgeführt werden. In folgenden Besipiel werden wir Space an das Programm NosTale senden.
Wie funktioniert das? Wir brauchen den Titel des Programms. Diesen wollen wir in einer Variable speichern. Dann öffent unser Programm die Kommunikationsschnittstellen des Fensters mit dem Namen aus der Variable. Wenn dies gelingt können wir mit ControllSend texte an das Fenster schicken. Wenn nicht wird eine fehlermeldung ausgeben(MsgBox) und das Programm beendet. Um diese Bedingung zu überprüfen brauch wir ein IF. Was ist ein IF? Mit einem If können wir bedingungen überprüfen. Code:
If Bedingung ThenNun gehts los: 1) Wir speichern uns den Namen des Fensters das wir ansprechen wollen in der Variable Code:
$fenstername = "NosTale"Code:
$handle = WinGetHandle($windowname, "")Code:
If @error ThenMsgBox(Nr, "Titel", "Text") Für unser Programm schaut das so aus: Code:
AutoItSetOption("WinTitleMatchMode", 4)Wir schreiben wieder unsere Schleife mit dem sleep wie vorher. Das Send lassen wir jetzt aber vorläufig weg. Code:
AutoItSetOption("WinTitleMatchMode", 4)Um im Hintergund zu senden verwenden wir ControllSend Code:
ControlSend($fenstername,'','',"TEXT")Bauen wir das ganze jetzt in unser Programm ein: Code:
AutoItSetOption("WinTitleMatchMode", 4)Anwenden könnte man so ein Script für Bots. |
Programmierkurs by NetMax - LEKTION IV Hotkeys
Jetzt da unser Programm ja schon ziemlich gut läuft wollen wir vielleicht die Möglichkeit schaffen es über die Tastatur zu beenden, zu pausierenn bzw wieder fortzusetzen...
Was wir bisher haben: Code:
AutoItSetOption("WinTitleMatchMode", 4)Zuerst müssen wir festlegen das eine Taste eine bestimmte Funktion aufruft das machen wir so: HotKeySet("{PAUSE}","TogglePause") {PAUSE} ist die Taste. Also in diesen Fall die Pause Taste TooglePause ist die Funktion die aufgerufen werden soll(Diese müssen wir selbst programmieren.) Nun wollen wir die Funktion TooglePause porgrammieren. Daweil wissen wir aber noch nicht einmal was eine Funktion ist. Eine Funktion kann aufgerufen werden. Sie bekommt verschiedene Parameter und kann einen Wert zurückgeben. Nun zu unserer TogglePause-Funktion. Wir brauchen eine Variable die speichert ob das Script pausiert ist oder nicht. Bei jedem aufruf von TogglePause müssen wir den Wert von Pause umsetzen. z.b. wenn $Paused true ist wird durch $pause = not $Pause der wert genau geändert also $pause = not true = false. Jetzt machen wir eine Schleife die abbricht wenn Paused false ist(also nicht pausiert).Um nicht die CPU-Resourcen zu verschwenden findet die Überprüfung nur alle 100 Millisekunden statt. Code:
Global $PausedHotKeySet("{ESC}","Terminate") jetzt müssen wir wieder die Funktion Terminate programmieren: Code:
Func Terminate()Unser Bsp aus der Lektion 3 sieht nun so aus: Code:
AutoItSetOption("WinTitleMatchMode", 4) |
Programmierkurs by NetMax - LEKTION V InputBoxen und Timer
Heute lernen wir einen der wichtigsten Aspekte für Bots: Timer.
TImer führen Befehle oder Funktionen nach einer bestimmten Zeit aus. Wofür brauch ich Timer: Programmiere einen Bot der alle 3 Minuten schalfen geht(die Taste T drückt) und sonst immer die Leertaste. Der Bot soll eine bestimmte Zeit die vom Benutzer eingebe wurde schlafen. Wie funktiioniert ein timer:
Damit sich er Ablauf immer widerholt nehmen wir in der Schleife nach dem der befehl ausgeführt wurde den aktuellen Wert und setzen ihn als neuen Anfangswert: $timer1 = TimerInit() Code:
$timer1 = TimerInit ()Nun wollen wir vielleicht den Benutzer entscheiden lassen wie lange gewartet werden soll: Eingaben einlesen können wir mit dem Befehl InputBox("Titel","Frage"). Diese Funktion gibt uns einen Wert zurück den wir natürlich in einer Variable speichern müssen: $zeit = InputBox("Frage?","Wielange soll gewartet werden?") Da wir nun alles wissen programmieren wir jetzt das Beispiel von oben. Hier nochmal zur Erinnerung Programmiere einen Bot der alle x Minuten schlafen geht(die Taste T drückt) und sonst immer die Leertaste. Der Bot soll eine bestimmte Zeit die vom Benutzer eingebe wurde schlafen. Auch x ist vom Benutzer einzulesen Code:
Jetzt wollen wir das ganze natütlich auch in user großes Beispiel integrieren: Code:
AutoItSetOption("WinTitleMatchMode", 4) |
Programmierkurs by NetMax - LEKTION VI Struktiuriertes Programmieren und Kommentare
[align=left]Bei der Entwicklung größerer Programme ist es besonders wichtig das man strukturiet programmiert d.h. das man z.B. sich wiederhollende Bestandteile in Funktionen auslagert. Auch ist es wichtig das man z.B Teile wie angreifen und diverse Funktionen auslagert. Dies erleichert später den Austausch dieser Funktionen.
Beispiel erweitern Sie das Programm um eine Aufsammel funktion. Der Benutzer soll eingeben können nach wievielen Tastendrücken der Leertaste 2 mal die Aufsammeltaste gedrückt werden soll. Auch soll nach dem Schlafen 2 mal die Aufsammel Taste gedürckt werden. Die Aufasammeltaste soll in einer Variable definiert sein. Das haben wir bisher. Code:
AutoItSetOption("WinTitleMatchMode", 4)Zunächst schreiben wir jetzt eine Angriffsfuntkion(diese können wir später z.B. für den EInsatz von Skills erweitern): Code:
Func Attack()Code:
Func isSleepTime()Sie führt einfach alle befehle aus die wir für einen Schlafvorgang bracuhen also Niedersetzen, Warten, Aufstehen Code:
Func Schlafen()Nun bauen wir die Funktionen ein. Das sollte dann so aussehen: Code:
AutoItSetOption("WinTitleMatchMode", 4)Beispiel erweitern Sie das Programm um eine Aufsammel funktion. Der Benutzer soll eingeben können nach wievielen Tastendrücken der Leertaste 2 mal die Aufsammeltaste gedrückt werden soll. Auch soll nach dem Schlafen 2 mal die Aufsammel Taste gedürckt werden. Die Aufasammeltaste soll in einer Variable definiert sein. Ok. Wie wir Benutzereingaben realisieren können wissen wir schon: Mit einer InputBox $nachwvdl = InputBox("Frage?","Nach wievielen Schleifendurchläufen soll aufgesammlt werden") Der LootKey soll in einer Variable gespeichert sein: $lootkey = "R"; Nun müssen wir die Aufsammel-Funktion programmieren Code:
Func Loot()Code:
AutoItSetOption("WinTitleMatchMode", 4)[/align] |
Programmierkurs by NetMax - LEKTION VII Arbeitspeicher lesen I
Jetzt soll sich unser Bot natürlich nur hinsetzen wenn es wirklcih notwendig ist
Wie könnte man vorgehen: HP ermitteln --> schauen ob kleiner als Wert --> hinsetzen --> Überprüfen ob HP > WertMax --> Aufstehen sonst NIXTUN Wie gehen wir jetzt vor: Wir starten das Spiel von dem wir den Wert ermitteln wollen in unserem Beispiel NosTale Wir loggen uns ein Wir sehen unseren derzeitigen HP Stand. Diesen Wert merken wir uns. Nun brauchen wir Cheatengine [Only registered and activated users can see links. Click Here To Register...] Nun solltet ihr CheatEngine installieren Starte CheatEngine Nun nehme deine aktuelle HealthPoints(nicht die MaxPoints) und merke sie dir. Klicke in Cheatengine auf das Lupensymbol Das rot Markiete! Du kommst in die ProcessList: Wähle NostaleX.dat und drücke auf OPEN Nun gibt deine aktuellen Healthpoints von vorher in das Feld Value ein! Dann klicke auf First Scan(beim mir auf der Grafik steht „New Scan“ weil ich da schon drauf geklickt habe). Nun lasse dich leicht verwunden Gib deine veringerte HP Zahl nun in das Value-Feld ein und drücke „Next Scan“ Nun solltest du die Speicheradresse sehen(in diesem Fall 027A839C) Der Bot benötigt die Speicheradresse allerdings nicht so: 027A839C Plaziere nun zwischen 0 der daraufolgenden Zahl ein x also: 0x27A839C Diese Adresse brauchen wir Nun zum eigentlichen Programm Code:
$SPA = "0x27A839C"
BILDER FOLGEN SPÄTER! |
Programmierkurs by NetMax - LEKTION VIII Grafisches Benutzerinterface(GUI) Teil I
Das GUI werde ich anhand von KODA erklären
Der Koda ist ein Programm um GUI´s (Graphical User Interface) für AutoIt Programme zu schreiben und zu gestalten. Das Programm haben wir ja schon bereits in Lektion I installiert. Nun ändern wir die Sprache auf Deutsch. Dazu klickt Man auf den Menuepunkt "Options" und wählt danach "Settings". Hier dann "German" anwählen nun OK klicken. Zum erstellen eines GUIs öffnet man den Formdesigner. Hier kann man ein GUI anlegen. Nach einem Klick auf Neu steht man vor einem leeren Formular was nun mit Elementen füllen kann. Sitlich im sogenannten ObjectInspector ist es ganz wichtig die EIgenschaften Name(der Name des Elements) und Caption(der Text der angezeigt wird) auszufüllen. Cation gibt es nicht immer da für z.B. Eingabefelder dieser Wert Text heißt(kann auch leer bleiben) [Only registered and activated users can see links. Click Here To Register...] Für einen einfachen Button und eine Checkbox könnte das so aussehen: [Only registered and activated users can see links. Click Here To Register...] Nun wählt man Erzeuge Code und kopiert den Code. Diesen kann man dann in sein AutoIt-Programm einfügen [Only registered and activated users can see links. Click Here To Register...] So kann der Code aussehen [Only registered and activated users can see links. Click Here To Register...] Die eigentlichen Programmierschritte lernen wir in der nächsten Lektion. |
FRAGEN BITTE IN DEN THREAD "Fragen zu NetMax's Programmiertutorial"
|
Programmierkurs by NetMax - LEKTION IX Grafisches Benutzerinterface(GUI) Teil II, Ini
Im heutigen Tutorial werden wir mit Hilfe des Wissens was wir bisher erworben haben dieses Benutzerinterface erstellen.
[Only registered and activated users can see links. Click Here To Register...] Wichtig: Name für das HP-Eingabefeld = txtHP name für das Aufsammeltastenfeld = txtASK name für das Schlaftastenfeld = txtSK name für die minHP = txtMinHP name für die maxHP = txtMaxHP Für die Checkbox(Das zu Anhaken) = chkAufsammeln der StartButton = cmdSS der Pausebutton = cmdPause Legt nun das Benutzerinterface so wie abgebildet an! Nun lassen wir uns(wieim letzten Tutorial gelernt) den Code generieren. Wir erhalten in etwas folgendes: Code:
#include <ButtonConstants.au3>$nMsg = GUIGetMsg() fragt ab ob sich etwas am formular geändert hat. Das Switch unterscheidet die einzelnen Veränderungen. Standartmäßig gibt es Code:
Case $GUI_EVENT_CLOSEWir fügen ein Case hinzu: Code:
Case $cmdSSNun definieren wir auch noch eine Aktion für den Pause-Knopf(cmdPause): Code:
Case $cmdPauseCode:
#include <ButtonConstants.au3>Da wir das Rad nicht jedesmal neuerfinden müssen nehmen wir einfach die Pause Funktion aus LEKTION VI. Zur erinnerung folgende Code-Teile sind für die Pause funktion wichtig: Code:
Global $PausedCode:
#include <ButtonConstants.au3>Was brauchen wir? 4 neue Funktionen: doSleep() --> Setzt sich hin und wartet bis HP wieder voll. Steht dannach auf. attack() --> Drückt den Attack Key loot() --> Drückt die Aufsammeltaste checkHP() --> Ließt die aktuellen HP aus dem Arbeitsspeicher und gibt sie Zurück und wir müssen das Programm erweitern: checkHP(): Code:
func checkHP()Code:
func doSleep()Code:
func loot()Code:
if $running == True Then ; $running müssen wir in der Funktion startstop() setzenDie veränderte startstop Funktion: Code:
$running = falseCode:
#include <ButtonConstants.au3> |
LEKTION IX Grafisches Benutzerinterface(GUI) Teil II, Inis, Arbeitspeicher TEIL2
Nun brauchen wir folgende Informationen
$minHP --> minimale HP $maxHP --> maximale HP $windowName --> fenstername $SPA --> HPAdresse $sk --> SleepKey $ASK --> Aufsammeltaste WindowName definieren wir einfach $windowname = "NosTale" Doch wie bekommen wir jetzt die anderen Werte(die wir ja schon in den Textboxen haben)? Für normale textfelder geht das ganz einfach GUICtrlRead(TEXTFELDNAME) Also z.B. $minHP = GUICtrlRead($txtMinHP) $maxHP = GUICtrlRead($txtMaxHP) $SPA = GUICtrlRead($txtHP) $sk = GUICtrlRead($txtSK) $lk = GUICtrlRead($txtASK) Nun bauen wir diese Zeile vor den ersten Funktionen ein: Code:
#include <ButtonConstants.au3>Code:
if BitAnd(GUICtrlRead($chkNAME), $GUI_CHECKED) THENCode:
func loot()Code:
#include <ButtonConstants.au3> |
Hi,
Sehr gutes Tutorial, mein Thanks hast du jedenfalls schon. ;) |
nice tut hast dir viel mühe gemacht +thx
|
Sehr sehr gutes Tut!!! Ich finde sowas sollte auf jdenFall belohnt werden!
Die Muehe die da drin steckt ist beeindruckend! |
Hey netMax..
Also als erstes SUPER! Zweitens ..wie finde ich die Sachen heraus wie z.B Speedhack..also dass man solange schlägt nd so was fr zahlen und so muss ich eingeben?..und is das für metin2 oder überhaut=? |
hey!
ich weiß nicht genau, ob man hier fragen stellen darf, aber ich bin einfach mal mutig ^^ ich hab versucht mir nen kleinen aufsammelbot zu schreiben, mit pause und an/abschaltfunktion, aber hab das problem, dass der bot zwar offensichtlich den key an das prog sendet (in der chatleiste kommts an) aber zum aufsammeln gehts net... großer meister, erleuchte mich mit deiner weisheit :D CODE: AutoItSetOption("WinTitleMatchMode", 4) Global $Paused = 1 Global $Collect = 0 HotKeySet("{PAUSE}", "TogglePause") HotKeySet("{F10}", "ToggleCollect") HotKeySet("{F11}", "Terminate") $windowname = "METIN2" $handle = WinGetHandle($windowname, "") If @error Then MsgBox(4096, "Error", "Fenster konnte nicht gefunden werden") Else while 1 CheckAction() WEnd EndIf Func CheckAction() If $Collect Then ControlSend($windowname, '', '', "y") sleep(1000) EndIf EndFunc Func ToggleCollect() $Collect = NOT $Collect EndFunc Func TogglePause() $Paused = NOT $Paused While $Paused Sleep(100) WEnd EndFunc Func Terminate() Exit 0 EndFunc |
Echt Geil gemacht und sich auch sehr viel mühe bei gegeben jetzt wäre noch pracktich zu wissen wie man mobs und gegner scant und dan in den bot so ein baut das er daruf den immer bestimmte sachen macht
|
nach mobs suchen tust du am besten mit sowas:
PHP Code:
|
ok ein teil verstehe ich mit mein wissen schon nur was macht genau weil der pixel wird nie mit ein tasten druck gespeicher und ist so mit den eine variable die man verarbeiten kann also fände ich es nett wen du verleicht noch mal pls dne code oben noch mal zu erläutern
|
der Holt die Größe/Position vom Fenster.. PixelSearch muss ja wissen in welchem Bildschirm bereich es suchen muss.
|
Sehr nice tut hast dir nen Thanks verdient ^^
|
echt klasse diese mühe aber leider check ichs net bin ja noch viel zuklein bin 9jahre lach
|
Joa Gut erläutert...immer mit Bilder :)
ich bin hier jetzt en Jahr angemeldet dein Thread ist der erste wo ich was schreib :D das hat was zu bedeuten... :) |
WTF ....
Some one translate this in english for god dame sake ! |
Ok das Tutorial ist gut geworden , wirklich gut und auch alles schön erklärt .
Aber ich persönlich finde das komplette Tutorial recht unübersichtlich , mir würden da allgemein 2 Lösung einfallen , die das vielleicht etwas übersichtlicher gestalten :D : 1.Eine Art Verzeichnis , was jetzt eigentlich wo steht und was man in dem jeweiligen Kapitel lernt . Grund ist einfach , dass nicht jeder bei 0 anfängt manche haben vielleicht schon die Grundlagen und sind vielleicht auch nur in Memory editing interessiert , jemand , der nur die ersten 3 Lektionen von dir liest wird sich denken "ach das weiß ich doch alles schon" und wird wo anders nach einem "Tutorial" dazu suchen . 2.Ein bisschen Farbgebung peppt das ganze nochmal ein bisschen auf . Z.b. könntest du immer die Variablen farbig gestalten , oder einfach immer nur die Überschrift , aber ein bisschen Farbe würde das ganze noch einen Tick besser aussehen lassen :D . Edit : Noch eine kleine Anregung , benutze die php-tags für ein stück code , also [ php] [ /php] anstatt [ code] [ /code] das macht das ganze noch ein bisschen leichter lesbar . |
danke is sehr hilfreich
sehr gut erklärt |
das sollte echt mal sticked
|
Quote:
|
HAY leute der bot ist ech supaa!!
aber ich krig ihn nicht ricxhtig zum laufen+ kann jmd ne anleitung pls schicken was mnan einge ben muss in welcher reihen folge mannn genau vorgehwen muss |
Quote:
spielt lieber draußen als vorm combi sitzen ich kann das nicht leiden wie sich so junge kinder in ein forum stellen und warscheinlich auch noch WoW, oder M2 spielen sind zwar beides kack games aber ich finde das schade mit dem alter schon vor der flimmer kiste zu sitzen =°( :( |
okee ab lektion 2 check ich gar nix mehr aber ansonsten hab ich mir schon n Bot gemacht also das mit start sstop verstehe ich nicht
|
Was genau verstehst du nicht?
Also das pausieren: Wenn du eine Taste("hotkey") drückst wird eine bestimmte Funktion(Programmabschnitt der gesondert aufgerufen werden kann und der bestimmte werte mitgeliefert bekommt ) aufgerufen. Bei Pause wird abgefragt ob das Programm schon pausiert ist wenn ja --> weitermachen sonst --> pausieren. Ob das Programm pausiert ist merkst du dir in einer Variable(eine Variable kann bestimmt werte haben). |
Hey, coole Sache gute Erklärung, meine thanks kriegst du ^^
EDIT: Hab ein Paar fragen: wenn ich den ganzen kopierten bot laufen lassen will kommen bei mir filgende Probleme: 1. (8) : ==> Error opening the file.: #include <NomadMemory.au3> 2. (59) : ==> Unknown function name.: $ProcessInformation = _MemoryOpen($pid) $ProcessInformation = ^ ERROR 3. (60) : ==> Unknown function name.: $Number = _MemoryRead($SPA, $ProcessInformation) $Number = ^ ERROR 4. Hab erst mal _MermoryRead gelöscht dann: (60) : ==> Missing right bracket ')' in expression.: $Number = ($SPA, $ProcessInformation) 5. Klammer geschlossen dann: (60) : ==> Illegal text at the end of statement (one statement per line).: $Number = ($SPA), $ProcessInformation) $Number = ($SPA)^ ERROR 6. processInformation gelöscht dann: (61) : ==> Unknown function name.: _MemoryClose($ProcessInformation) ^ ERROR 7. _mermoryClose wieder gelöscht dann: (61) : ==> Unable to parse line.: ($ProcessInformation) ^ ERROR 8. processInformation gelöscht Dan laufts, aber iwie komisch. Wie kann ich die Fehler oben beheben, ich denk nich, dass ich es verbessere indem ich alles lösch ^^' EDIT'': Noch was: Wenn ich mit der CE meine HP adresse suche komm ich auf zwei verschieden Adressen, ist es normal ? welche soll och nehmen? Vielen dank im voraus für antworten =DD |
Also ich find des TuT is richtig gut, etwas mehr struckturieren und es wäre perfekt :D
Ich hab ein problem, und zwar versteh ich das schon alles, aber wenn ich den bot bei IV starte kommt immer ein error: Line 16 (File "C:/....... .au3"): Func TogglePause() Error :"If" statement has no matching "EndIf" statement ichh ba aber alles genauso wie im TuT beschrieben gemacht, hab danach sogar mal des ganze kopiert, aber die error meldun kommt trotzdem. Also so wie ich des seh, erkennt mein AutoIt den selbst definierten befehl net. Kann mir da mal wer helfen? mfg Konrad |
euch fehlt die NomadMemory.au3. Ich lade sie heute noch hoch
|
Hallo Netmax^^
Hab ein problem mit Koda,unzwar möchte ich eine normale Levelfunktion erstellen.(zum testen erstmal im editor die leertaste drücken) Aber irgendwie Funktioniert es nicht aber mit Mousemove klappt es. Ich vermute es liegt daran das das fenster, wenn es nicht mehr aktiv ist also wenn ich den Editor anklicke, das die Funktion wieder sozusagen Deaktiviert wird. Bitte helf mir bin schon am verzweifeln... Hier mein Code Code:
$windowname = "Unbenannt - Editor" |
ControlSend($windowname, '', "15", "Dein Text")
oder ControlSend($windowname, '', "Edit1", "Dein Text") mfg |
Ok Thx ich versuch's mal aber eine Frage hab ich noch:
1.Wieso muss da eine 15 hin? Ps.Bekommst ein Thx wenns klappt...(= edit: Hab noch eine Frage^^ 2.Es funktioniert jetzt aber wenn ich einmal auf den Button Klicke kommt einmal die leertaste aber er soll die ja permanent ausgeben o_O Was kiann man da machen? damit er die Hintereinander ausgiebt? sry das ich so viel Frage^^ Frage 2 hab ich mit einer While schleife gelöst aber punkt 1 weiß ich immernoch nicht^^ |
Beim Editor kommt auf jeden Fall 15 hin. Musst einfach mal im AutoIt Info Toll schauen.
Online Games haben da immer eine 0 stehen. |
Achso ok Thx
|
| All times are GMT +2. The time now is 23:00. |
Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.