Beiträge von Bernd Albrecht


    die betreffenden Skripte als Quellcode zu posten.

    Hi leute,
    ich wollte mein Script von bis 112 möglichen Schleifen bis 224 mögliche Schleifen erweitern.

    Jch bekomme aber jetzt folgende Fehlermeldung, nach der Erweiterung: Array variable has incorrect number of subscripts or subscript dimension range exceeded.
    Ich habe nicht die besten AutoiT Kentnisse, sogar eher ziemlich schlechte. ich habe nun auf verschiendenen Seiten gelesen, das ich mein Array erweitern muss... Nur in meinem Script gibt es keinen Bereich wo ich es erweitern kann...
    Weis jemand vielleicht wie ich diese Fehlermeldung beseitigen kann?
    Kann es sein das man eine Excel Range nur bis iCount= 114 betreiben kann und mehr nicht?

    Ich danke euch im vorraus für eure Antworten.

    Gruß Bernd

    $bForceFunc auf True

    Wenn ich nur dieses in mein aktuelles Skript einbauen muss, ohne große Veränderungen, würde ich dies machen; ich glaube aber ich müsste mein Skript grundlegend verändern und das möchte ich aktuell nicht. Ich habe mich damit angefreundet lange Textein in Excel in zwei Zellen zu teilen um diese senden zu können. Vielen dank aber für deine Tipps.

    Sorry für die Späte Antwort. Ich danke euch für eure Antworten. Ihr habt mich etwas weiter gebracht. Zumindest weis ich nun, das dieses Limit nicht nur bei mir besteht:

    Damit lässt sich das Excel-Limit von 255 Zeichen umgehen

    Ich werde mal versuchen _Excel_RangeWrite irgendwie in mein Skript einzubauen, damit ich dieses Limit umgehen kann.

    Gruß Bernd

    Vielleicht helfen diese Screenshots etwas weiter.


    Wie genau die Funktion aussieht ist in diesem Fall erstmal nicht wichtig. Über die Screenshots sieht man das Konstrukt meines Skriptes vollständig. Mit diesem Konstrukt schaffe ich es aktuelle nicht, eine Zeile mit über 250 Zeichen aus meiner Excel Tabelle auszulesen und dann mit "send" zu senden. Nun stellt sich die Frage, ob es eine wenig aufwendige Methode gibt, diesen "Bug" oder diese "Begrenzung" aufzuheben? Wenn es mit meiner Funktion nicht möglich ist, dann ist dies ok; ich habe aktuell wenig Zeit und Lust ein ganz neues Skript zu schreiben.

    Gruß Bernd

    Hi Leute,

    ich lasse ein Skript über Excel laufen. Leider gibt AutoIT ab einer gewissen Anzahl, so ca. 250 Zeichen; nur noch 0 ein anstatt die Zeichen. Also der Befehl ist bspw. send($_readV); und wenn $_readV mehr als 249 Zeichen hat, gibt AuotIt 0 ein. Kann auch sein das es 300 oder 350 waren.
    Kennt jemand eine Lösung dafür, wie ich es einrichten kann, das AutoIT auch so ca. einen Text mit 500 Zeichen sich merken kann und diesen auch eingeben kann? Aktuell habe ich die Spalten in 2 geteilt, also bspw. wird ein text mit 300 Zeichen in 2 mal 150 zeichen geteilt und jeweils einmal "send".
    Mein Skript soll wohl nicht das Beste sein, wie ich mal in dieser gruppe gehört hatte; das ist aber nicht hier das Problem. Wenn ich ein komplett neues Skript schreiben muss um dieses Problem zu lösen, dann würde ich lieber bei der "Doppelten" Methode bleiben....

    Ich danke euch im vorraus für eure Anwtorten.

    Gruß Bernd

    Vielen Dank. Wenn es andereherum klappen sollte, wäre dies die Lösung. Wenn ich $_readR=1 und if $i=25 tauschen sollte, dann würde dieser Case bei $i=25 ausgeführt werden, und wenn $_readR=1 wäre; das wäre nicht das was ich bezwecken will. Ich hab mir eine andere Lösung über Excel für mein Problem ausgedacht. Danke aber trotzdem.

    Hi Leute,


    Ich möchte innerhalb einer Funktion eine Select Funktion Einbauen, und dort dann einen Case einrichten, der dann ausgelöst wird, wenn bspw. $_readR=1 ist aus meiner Excel Tabbelle von bspw. $i = 7 ist; obwohl die Funktionsschleife sich gerade nicht bei $i = 7 befindet. Etwas Kompliziert, ich weis. Spezieller möchte ich das er auf die Daten ( Reihe) $_readR zugreift bei: $i= (Aktueller $i) minus 6

    Konkret:

    (geändert von Musashi : Skriptfragment in Code-Tags gesetzt)

    Könnte mir jemand dabei helfen oder schätzt ihr, das dies nicht umsetzbar ist?


    Ich danke euch im vorraus, für eure Antworten.

    Gruß Bernd

    Kannst Du kurz beschreiben, was Du mit dem Programm erreichen willst?

    Ich möchte damit einen Upload Prozess bei http://www.Spreadshirt.de (Partnerbereich) automatisieren. Die Fenstergröße wird bei mir immer gleich sein. Es geht um einen Webbrowser. Die Bildschirmgröße und Auflösung bleibt bei mir auch immer gleich. Wenn es eine Pixel*-Funktionen diesbezüglich geben sollte, würde sie mir weiter helfen.

    Was hast Du schon probiert?

    Bist ja schon über ein Jahr hier und somit kein Newbie mehr

    Ich wollte mit dem hier ran; merkte aber dann, das das nicht helfen wird:


    $pixel = PixelGetColor( 814, 437 )

    $hexColor = "0x" & Hex($pixel)

    If $hexColor = 0xECB55A Then

    MouseClick("left" , 1305,431 , 1);

    Sleep(Random(14050, 16650, 1))

    MouseClick("left" , 708,334 , 1);

    Sleep(Random(2050, 4650, 1))

    MouseClick("left" , 1259,120 , 1);

    Sleep(Random(23050, 29650, 1))

    EndIF


    Ich hab noch die Suchfunktion benutzt, leider ohne Ergebnisse. Ich benutze ein Autoit Skript, AutoIT Exeperte bin ich leider nicht und werde ich vermutlich auch nie werden.

    Meinst Du so etwas ?

    Vielen dank, Nun hat es doch irgendwie mit SendKeyDelay in Kombination mit weiteren kleinen Änderungen geklappt.

    Musashi und water

    ja, aktuell habe ich 2 Skripte für A und B.

    Der Aufbau meiner jeweils beiden Skripte ist wie schon oben von mir gezeigt, und nicht wie water gezeigt hat. ( FOr next...)


    2mal:

    #Region

    #AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7


    Opt('MustDeclareVars', 1)

    #include <Excel.au3>

    Global $oExcel_1 = _Excel_Open()

    Global $var = "G:\x\x.xlsx"

    Global $oWorkbook = _Excel_BookOpen($oExcel_1,$var)

    WinActivate("Read ideal - Microsoft Excel")

    sleep(15000)


    Global $_readA, $_readB, $_readC,...


    Global $aRanges =...

    ...

    ...

    ...

    For $i = 0 To 19 Step 1

    $_readA = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][0])

    $_readB = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][1])

    $_readC = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][2])

    $_readD = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][3])

    $_readE = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][4])

    $_readF = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][5])

    .....

    ....

    XXXXXXXXX ($kordinater, $HWND ,$_readA, $_readB, $_readC, $_readD, $_readE, $_readF, $_readG, $_readH, $_readI, $_readJ,...)
    Next

    Func A

    ....Befehle

    ....

    ....

    EndFunc


    müsste ich nun eine zweite Funktion definieren ?Die Parameter meiner Zweiten funktion sind identisch mit meiner ersten.

    Gruß Bernd

    water Danke für deinen Tipp, Aktuell bin ich mit meiner Range ziemlich zufrieden, es dauert immer zwar ca. 30-90 Sekunden bis das Skript alles geslesen hat und beginnt, aber diese paar sekunden stören mich nicht, es lief auch so bisher fehlerfrei ( PS: Das was ich oben reingeschriebn hatte ist nicht mein gesates Skript, da wo die Punkte sind, sind in wirklichkeit noch andere Sachen, Bspw. meine Range/Array/....


    Ich nehme anhand eurer Antworten an, das mein Vorhaben, 2 Schleifen hintereinander laufen zu lassen, nicht möglich ist und ich gewzungen bin diese immer seperat laufen lassen muss.


    Gruß Bernd

    Hi Leute,


    wie kann man 2 verschiedene Schleifen hinteinander laufen lassen. Sprich ich möchte, das zunächst Funktion A 20 mal ausgeführt wird, sobald diese FUnktion endet soll Funktion B 20 mal ausgeführt werden. Aktuell muss ich immer warten bis Funktion A beendet ist und dann das Skript der FUnktion B öffnen und es manuell starten.


    #Region

    #AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7


    Opt('MustDeclareVars', 1)

    #include <Excel.au3>

    Global $oExcel_1 = _Excel_Open()

    Global $var = "G:\x\x.xlsx"

    Global $oWorkbook = _Excel_BookOpen($oExcel_1,$var)

    WinActivate("Read ideal - Microsoft Excel")

    sleep(15000)


    Global $_readA, $_readB, $_readC,...

    Global $aRanges =...

    ...

    ...

    ...

    For $i = 0 To 19 Step 1

    $_readA = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][0])

    $_readB = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][1])

    $_readC = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][2])

    $_readD = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][3])

    $_readE = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][4])

    $_readF = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][5])

    .....

    ....

    Func A

    ....

    ....

    ....

    EndFunc



    Ich danke euch im vorraus für eure Aufmerksamkeit


    Gruß Bernd

    Hallo Leute,


    ist es möglich mit AutoIt eine Website ( die gesamte website) darauf zu untersuchen ob neue Downloads zur verfügung stehen?
    Auf vexels.com erscheinen täglich neue Dowload´s, die findet man aber erst nach ca. 10 Tagen ( suche ergibt keine Treffer; erscheint nicht bei "newest"). Wenn mann aber den Link mit der NUmmer kennt, kann man schon früher diese Dateien downloaden. Ich bin Mitglied bei vexels.

    Bsp. Link : https://de.vexels.com/vectors/preview/218636/kein-inhalt
    Diese Panda Grafik findet man noch nicht über suchen, erst in einigen Tagen, sie ist aber schon aber auf der Seite existent.

    Ich danke euch im vorraus für eure Antworten

    Gruß Bernd

    autoiter danke für deine Verbesserungsvorschläge.
    Das mit der Zelle war schon nervig für mich und mein Skript braucht wirklich so 1 min bis es beginnt. Könnte ich es beispielsweise so abkürzen ?:

    Code
    Global $aRanges =        [    ['B2',- 'B61',], _ ?

    oder gibt es da eine spezielle Metodik wie man das machen kann?

    Mit dem Internet Eplorer und dem IE.au3 hatte ich mich schon beschäftigt gehabt, leider gab es da einige Hirden. Die Plattformbetreiber haben Ihre Seite so eingerichtet, das man keine ID´s und Namen hat, also hatte ich es aufgegeben.

    Gruß Bernd

    Bsp. Region