d.h. es gibt keine möglichkeit AutoIT zu "tunen" um das ganze zu beschleunigen bzw. auf mehrere Threads aufzuteilen ?
Beiträge von Lanealine
-
-
achso, dann liegts wohl daran. benutze eine CPU mit 6 Cores / 12 Threads.
Aber warum ist dann kein Thread voll ausgelastet, wenn die gesamte Auslastung bei 8% ist ? Bei mir geht nicht nur ein Thread auf 100%, sondern alle ein bisschen, sobald ein script activ ist, das nur aus einer while schleife besteht.
Wird das durch Windows auf mehrere Threasds verteilt ?(Benutze Win7 Pro) -
Hey, ich bin jetzt schon öfter darauf gestoßen, dass ich mit AutoIT ein laufendes Script starte, das keinerlei Pausen enthält(sleep etc.).
Das Script müsste eigentlich durchgehend arbeiten, allerdings benötigt das Script nur max. 8% von der CPU Auslastung.Warum ist das so ? Ist es möglich AutoIT zu "unlimitieren", sodass 100% der CPU ausgelastet wird und das Script um einiges schneller arbeitet ?
MfG
-
Hey,
ich habe mir eine Funktion gebaut, die eine Textdatei erstellt, sobald das Programm arbeitet und sie wieder löscht, wenn die arbeit vollendet ist, damit nicht mehrere Programme gleichzeitig "arbeiten".
Mit 2 Programmen gleichzeitig funktioniert das wunderbar. Es wird immer gewartet, falls ein Programm etwas am machen ist.Mein Problem ist nun, dass ich gerne 3-4 Programm gleichzeitig arbeiten lassen möchte, allerdings dürfen diese NUR hintereinander arbeiten. Wenn ich das nun mit der Textdatei versuche und das erste Programm startet die arbeit, jedoch in der Zeit 2-3 Programm auf der "Warteliste" sind und darauf warten, dass die Textdatei von dem ersten Programm wieder gelöscht wird, damit ein neues Programm starten kann. Allerdings starten so 2-3 Programm gleichzeitig, weil diese gleichzeitig erkennen, dass die Textdatei nichtmehr existiert.
Habt ihr für dieses Problem eine gute/einfache Lösung, wie ich eine Art Warteliste für die Programme erstellen kann, dass diese immer schön hintereinander mit der Arbeit loslegen ?
MfG
-
-
Hey,
wie kann ich ein array automatisch vergrößern lassen ?zurzeit mache ich es so, dass ich am anfang vom script ein $aArray[100] erstelle...
das ist natürlich nicht so optimal gelöst.. deshalb suche ich nach einer funktion, die das array erstmal bei einer größe von 1 startet, und jedes mal wenn ein neuer wert erkannt wird, wird die arraygröße um 1 erweitert.
ist das möglich?
mfg
-
Hey, nach einer Neuinstallation von AutoIT werden mir alle Dateien die von AutoIT sind (.au3, .a3x etc) mit einem "Testdatei-Icon" angezeigt.
Wenn ich also eine .au3 Datei habe, heißt sie "Test.au3", allerdings ist das Icon von dieser Datei das selbe wie bei einer Textdatei(also so ein Notizblock).Das ist sehr nervig und ziemlich verwirrend aufm Desktop^^
Wisst ihr, wie man das wieder auf das AutoIT Symbol ändern kann ?
(habe schon mehrmals neuinstalliert)mfg
-
das ganze sieht in etwa so aus :
wenn ich jetzt allerdings bei Function2 einen error erzeuge, sodass die weiteren functions nichtmehr ausgeführt werden sollen, will ich diesen nicht bei Function3/4/5 einzeln abfragen und mit einem "Return" die functionen abbrechen, sondern ich möchte in Funcion2 mit einem "hauptbefehl" die kompletten functionen abbrechen und zurück in die whileschleife kommen.
gibt es so einen befehl ? -
@n00b-it so mache ich es jetzt schon, allerdings häufen sich die abfragen vor den einzelene functions so langsam und es wird unübersichtlich
-
hey,
ich habe ein script das in einer while schleife wartet, bis ein button gedrückt wird, sobald das geschieht, werden mehrere function hintereinander ausgeführt und dannach gehts wieder in die while schleife.
die einzelnen functions breche ich zurzeit mit "Return" ab, dann geht es direkt in die nächste function.gibt es auch einen befehl um alle function abzubrechen und direkt wieder in die whileschleife zurück zu kommen ?
mfg
-
Vielen Dank für deine mühe @Xorianator , mit dem BitXOR läufts jetzt
-
@Xorianator
ich würde es ja gerne mit dem BITXor machen, aber ich verstehe leider nicht, wie das funktioniert
ich bin mir sicher, dass das mit dem BITXor leichter ist und übersichtlicher..mein beispiel ist ein "beispiel", aber ich denke schon das es genau zeigt, welches problem ich habe.
so kompliziert ist das problem meiner meinung nach nicht, eine variable in eine if abfrage zu packen. aber ich bin halt selber kein autoit pro.
kannst du mir bitte ein kurzes beispiel geben an den ersten beiden if abfragen, wie ich das mit dem BITXor einbauen muss, damit es eine normale IF abfrage ist oder einer IF NOT ? -
Code
Alles anzeigen$aTest[4] $ifORifnot1 = "" or "not" $ifORifnot2 = "" or "not" $ifORifnot3 = "" or "not" $ifORifnot4 = "" or "not" For $i = 0 To 3 $aTest[$i] = GUICtrlCreateCheckbox(...) Next If $ifORifnot1 GUICtrlRead($aTest[0]) = $GUI_Checked Then ... If $ifORifnot2 GUICtrlRead($aTest[1]) = $GUI_Checked Then ... If $ifORifnot3 GUICtrlRead($aTest[2]) = $GUI_Checked Then ... If $ifORifnot4 GUICtrlRead($aTest[3]) = $GUI_Checked Then ... EndIf EndIf EndIf EndIf
so sieht das ganze ungefähr aus, damit ich nicht unten im script NOT oder "" adden zu müssen, möchte ich gerne direkt am anfang vom script variablen haben, in die ich dann "" oder "not" eintrage, damit das dann unten übernommen wird.
das mit dem switch check ich leider noch nicht so richtig, so wie das bis jetzt für mich aussieht, kann ich das für meine situation nicht benutzen. aber vielleicht verstehe ich was falsch an dem befehl^^ -
@Xorianator
danke erstmal für die erklärung.. ich muss allerdings sagen, dass ich erlich gesagt immer noch nicht raffe, wie ich da jetzt das NOT bzw normal jetzt bei meinem befehl einbauen kann.
ich habe mehrere von solchen abfragen hintereinander, und ich möchte vorher in einer übersichtlichen tabelle mit 0 und 1 sagen, ob die kommenden if abfragen mit NOT oder normal ausgeführt werden sollen.@Lottich
hey, danke für den hinweis, ich glaube aber dass mir das nicht weiterhilft bei meinem problem. (bin allerdings anfänger und übersehe vielleicht, wie man es mit dem befehl richtig anstellt^^) -
sry, aber ich checks nicht^^
könnt ihr mir das bitte nochmal an diesem beispiel zeigen ?
in diesem fall soll abgefragt werden ob die checkbox NICHT gecheckt ist.(weil $ifORifnot = "not")
sollte $ifORifnot= "" sein, dann soll abgefragt werden OB die checkbox gecheckt ist.mfg
-
hey,
bei dem code:
$varNOT= "not"
If $varNOT $test = 5 Thengibt es 2 ausgänge:
1.
$varNOT= ""
If $varNOT $test = 5 Thendann soll der befehl : If $test = 5 Then heißen
2.
$varNOT= "Not"
If $varNOT $test = 5 Thenhier soll der bfehl : If Not $test = 5 Then heißen
@Xorianator
ich verstehe dein code leider nicht kannst du mir ein schnelles beispiel schreiben, indem du "If $test = 5 Then" benutzt ? würde es bei dir "If _toNegateOrNot $test = 5 Then" heißen ? -
hey,
ich würde gerne den befehl "NOT" über eine variable in eine function einbauen. z.b.$varNOT= "not"
If $varNOT $test = 5 Thenleider funtioniert es nicht, so wie ich es jetzt gebaut habe:/ kennt jemand eine andere lösung ?
mfg
-
@autoBert
hmm.. das ganze script ist etwas lang um es hier zu posten. der fehler passiert aber genau in diesen funktionen.
das script arbeitet alle schritte ab, kommt dann an die function "Arbeitet", bei der das script solange warten soll, bis die .txt datei nichtmehr vorhanden ist (also von anderm programm gelöscht wurde) und da ignoriert es einfach den befehl "If Not FileExists", auch wenn das file existiert, geht das script in die function. merkwürdig ist, dass das nicht immer passiert, manchmal wartet es auch(so wie es eignetlich sein soll).
auch wenn ich die datei vor 5 sec von einem anderen script erstellt wurde und ich diese schon sehen kann und lesen kann, überspringt es den befehl...@Zeitriss
vielen dank für deine mühe
bis jetzt kenne ich mich mit dem ganzen TCP zeug nicht aus, ich werde es mir aber mal genauer anschauen, sieht interessant auskann man das ganze vielleicht auch so machen, dass die .txt immer existiert und wenn ein programm anfängt zu "arbeiten", dann wird eine 1 reingeschrieben und wenn es fertig ist, löscht es den kompletten text, sodass andere programme wissen, dass losgelegt werden kann ?
wenn ja, wie heißt die function um eine .txt zu leeren aber nicht löschen und neu zu erstellen ?würde es so funktionieren ?(theoretisch) (habe es nicht getestet)
-
hey, ich habe ein komisches problem mit dem FileExists befehl.
wenn ich mehrere autoit programme gleichzeitig laufen lasse, habe ich eine funktion eingebaut, sobald ein programm anfangen möchte zu arbeiten, geht es in eine whileschleife und wartet solange, bis eine .txt datei nichtmehr vorhanden ist. diese .txt datei wird von allen programmen in demselben ordner erstellt wenn es anfängt zu arbeiten und wieder gelöscht, wenn die arbeit fertig ist und es sich wieder im "leerlauf" befindet.die funktion ist sehr simple aufgebaut
Code
Alles anzeigenFunc Arbeitet() While 1 If Not FileExists($DirArbeitet) Then FileWrite($DirArbeitet, "") Return EndIf WEnd EndFunc Func Fertig() FileDelete($DirArbeitet) EndFunc
ist an dieser funktion etwas falsch ?ich habe folgendes problem:
wenn programm A anfängt zu "arbeiten", erstellt es eine datei in $DirArbeitet. (ich sehe die datei mit eigenen augen in dem ordner).
dann gebe ich programm B den befehl auch zu "arbeiten"... dieses sollte jetzt eigentlich in der whileschleife solange warten, bis die datei von progrmam A wieder gelöscht wurde. allerdings wird dies komplett ignoiert und programm B fängt einfach an zu arbeiten...warum ist das so ?
*manchmal funktioniert es..wie löst ihr dieses problem ? gibt es andere funktionen ?
mfg
-
wie kann ich den "Packer" weglassen/ausschalten ?
wenn ich statt .exe eine .a3x erstelle, läuft diese flüssig. aber was ist a3x überhaupt ? hat a3x vorteile/nachteile ?
mfg