Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 01:24

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Release] Erweiterte Execute-UDF

Discussion on [Release] Erweiterte Execute-UDF within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,876
[Release] Erweiterte Execute-UDF

Ich denke einige von euch kennen die in AutoIt implementierte "Execute"-Funktion. Ich fand es schon immer schade, dass diese Funktion so sehr beschnitten ist.
Es ist zum Beispiel nicht möglich mehrere Zeilen ausführen zu lassen, bspw. soetwas:
Quote:
Execute("Msgbox(0,' ',' ')"&@crlf&"Msgbox(0,'2','2')")
Das schränkt die Funktion natürlich sehr ein und auch, dass die Funktion kein If/While/For kennt ist Schade.
Außerdem kann man Variablen innerhalb der Execute Funktion keine Werte zuweisen:
Quote:
Execute("$var=1")
Diese ganzen Eigenschaften machen die Execute-Funktion eigentlich überflüssig und man kann sie nur noch für Rechnungen/Obfuscator benutzen:
Quote:
$var=12
$var="12-3+"&$var
$var=Execute($var1)
Genau aus den oben genannten Gründen und weil ein Freund mich darauf angesprochen hatte, habe ich die Execute-Funktion ein bisschen erweitert.


Was ist jetzt möglich mit der neuen Execute-Funktion?

1. Ifs, Whiles und Fors können jetzt wie in jedem normalen Skript benutzt werden.

2. Das Ausführern mehrere Befehle mit nur einem Funktionsaufruf ist nun auch möglich.

3. Wertzuweisung von Variablen, die innerhalb der Execute Funktion stehen, ist nun möglich.


Wofür braucht man das?

Man kann damit allerlei Sachen machen, z.b.:

1. Makros in einem AutoIt-Programm hinzufügen.

2. Gewisse Sicherheitsspezifische Sachen lassen sich dadurch realisieren (Schutz vor Source-Code-Klau u.ä.)

3. Um nachträglich noch Befehle in ein Programm einzubauen oder variable Befehle von einem Server auszuführen.


Es gibt aber auch ein paar Einschränkungen:

1. Arrays verhalten sich in der Execute-Funktion etwas komisch, es ist zwar, soviel wie ich feststellen konnte, möglich mit Arrays zu arbeiten (das Erstellen per dim o.ä. ist nicht möglich!), aber die Ergebnisse sind teilweise komisch. Hat man ein Array mit der Größe 3 und fragt danach mit "isarray($array)" ab ob das Array ein Array ist, bekommt man immer false zurückgeliefert.

2. Es können keine eigenen Funktionen innerhalb der Execute-Funktion definiert werden. Das Benutzen von UDF-Funktionen u.ä. ist trotzdem möglich.

3. So Sachen wie if $var="then" then können Probleme verursachen, genauso wie while $var="while" u.ä.
Man sollte also möglichst schauen, dass man den Wert vorher in einer Variable speichert:
Quote:
$var="then"
if $var1=$var then
...
endif
4. Momentan funktionieren nur die Statements If/Else, While und For.
Elseif funtkioniert nicht, lässt sich aber mit einem Work-Around beheben:
Quote:
if $var=1 then

else
if $var2=2 then

endif
endif
5. Einzeilige Ifs (if $var=2 then Msgbox(...)) und Mehrzeilige Befehle
Quote:
Msgbox(0, _
"", _
"")
funktionieren nicht.

6. Die Keywords Global/Local/Dim sollte man aus Skripts, die in Execute ausgeführt werden entfernen, da die Variable sonst nicht als Variable erkannt wird.


Was muss ich sonst noch wissen?

1. Die Variablen werden immer Global erstellt, auf sie kann also von überall im Skript (auch außerhalb der Execute-Funktion) zugegriffen werden.

2. Momentan implementierte Keywords sind "Exit" und "ExitLoop", andere Keywords werden noch nicht unterstützt, z.b. ContinueLoop.

3. Abkürzungen sollte man vermeiden:
Quote:
While 1
stattdessen sollte man
Quote:
While 1=1
schreiben.

4. Die Funktion _Execute braucht länger für das Ausführene eines Befehls, als wenn man ihn direkt in AutoIt schreibt.

Beispiele und die UDF sind im Anhang, die Execute.au3 einfach in den Include Ordner von AutoIt3 kopieren.
Attached Files
File Type: rar Execute.rar (6.8 KB, 596 views)
Shadow992 is offline  
Thanks
17 Users
Old 01/22/2011, 11:33   #2
 
Tarkrai's Avatar
 
elite*gold: 0
Join Date: Oct 2010
Posts: 344
Received Thanks: 48
Danke hab ich schon gesucht mal wieder ein schönes und verständliches Tut von dir :P
Tarkrai is offline  
Thanks
1 User
Old 01/22/2011, 12:08   #3
 
puzzlr's Avatar
 
elite*gold: 29
Join Date: Nov 2010
Posts: 502
Received Thanks: 127
sehr schön. doch ich glaube, dass ist die falsche section hier. das gehört in die releases section. bin mir aber nicht sicher.
puzzlr is offline  
Thanks
1 User
Old 01/22/2011, 12:12   #4
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,876
Quote:
Originally Posted by u_failed View Post
sehr schön. doch ich glaube, dass ist die falsche section hier. das gehört in die releases section. bin mir aber nicht sicher.
Ich denke hier passt es hin, denn die meisten AutoItler suchen nicht in der Release-Sektion sondern direkt in der AutoIt-Sektion. Es ist ja auch eine UDF für AutoIt und nicht direkt eine allgemein ausführbare Exe.
Shadow992 is offline  
Thanks
4 Users
Old 01/22/2011, 12:46   #5
 
TrickGamer's Avatar
 
elite*gold: 0
Join Date: Sep 2010
Posts: 487
Received Thanks: 196
Nicht schlecht^^ kann man ja mal brauchen
TrickGamer is offline  
Old 01/22/2011, 14:04   #6
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Naja meiner Meinung nach nicht wirklich nötig, aber danke für die Bemühungen
PenGuin :O is offline  
Old 01/22/2011, 14:15   #7
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,876
Quote:
Originally Posted by PenGuin :O View Post
Naja meiner Meinung nach nicht wirklich nötig, aber danke für die Bemühungen
Das muss jeder für sich selbst wissen ob er es benötigt oder nicht.
Wer es nicht benötigt, der muss es ja nicht downloaden.
Shadow992 is offline  
Thanks
3 Users
Old 01/22/2011, 15:24   #8
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Quote:
Originally Posted by Shadow992 View Post
Das muss jeder für sich selbst wissen ob er es benötigt oder nicht.
Wer es nicht benötigt, der muss es ja nicht downloaden.

Quote:
Originally Posted by PenGuin :O View Post
meiner Meinung nach
PenGuin :O is offline  
Reply


Similar Threads Similar Threads
Mw2 PS3 ,,erweiterte Magazine,,help
11/01/2010 - Call of Duty - 7 Replies
Hallo, wie der Titel Schon sagt suche ich paar Tipps damit ich mit Der INTERVENTION schneller erweiterte Magazine bekomme (Hauptgrund ist der Intervention Titel) ,ich habe schon 14/40 Abschüsse
Erweiterte UCE-Frage
03/23/2008 - Kal Online - 15 Replies
Situations-Beschreibung: Versuch eines Storm-no-cd Per memory mage-42 und mage-44 gesucht/gefunden/gemerkt nach storm cooldown ( bereich 175.000 - 185.000 ) gesucht/gefunden/geändert in 1 So, da da das Ganze auf einem KOCP/KOSP Prem. Server ablaufen "sollte" gibt es folgendes Problem. Nachdem ich die CoolDown-Zeit verändert habe und ins game switche , schließt sich KAL automatisch nach 1-3 Storms.
erweiterte Wartungsarbeiten
10/25/2006 - World of Warcraft - 8 Replies
Was ist das für ein scheiß spiel um es auf Deutsch zusagen. Eine woche hier wartungsarbeiten andere woche da wartungsarbeiten. Was ist nächste woche dran?



All times are GMT +2. The time now is 01:24.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.