1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. alpines

Beiträge von alpines

  • StdoutRead-Beispiel @CRLF

    • alpines
    • 27. Juni 2019 um 14:48
    Zitat von Professor Bernd

    Da bin ich der Meinung, dass lokale Variablen die globalen immer überschreiben.

    Das ist auch richtig so, naja - vielleicht ist es ein wenig unglücklich formuliert.

    Existiert eine Variable im globalen Scope ist diese innerhalb einer Funktion solange verfügbar, bis eine Variable mit dem selben Namen innerhalb des Funktionsscopes deklariert wurde.

    Danach kannst du meines Wissens nach die globale Variable - nach der Deklaration in der Funktion - nicht mehr referenzieren.

    Das Beispiel sollte ja darauf abzielen, dass man innerhalb der Funktion eine globale Variable mit dem selben Namen anspricht aber dies nicht mehr geht, weil eine lokale deklariert worden ist und deswegen derleere String ausgegeben wird obwohl "Erdbeere" hätte ausgeben werden müssen.

    So einen Fehler zu finden ist schwierig, da es kein syntaktischer sondern semantischer Fehler ist, das kann dir kein Compiler der Welt sagen.

    Ganz düster siehts aus wenn du die Deklaration mal oben in der Funktion hast, und in anderen Funktionen mittendrin, da du dann komplett durcheinander kommst und nicht mehr weißt ob du grad eine lokale oder globale Variable ansprichst.

    Deshalb gibt es den Programmiergrundsatz nur Elemente so lange am Leben zu halten, wie sie benötigt werden, damit Überschneidungen vermieden werden können.

    OT:

    Übrigens kannst du au3-Dateien direkt anhängen ohne sie vorher zippen zu müssen.

    Außerdem musst du nicht unbedingt "in den Text einfügen" (oder wie das heißt) anklicken. Fügst du den Download nicht ein, hast du unter dem Beitrag ein Anhangsbereich wo man sogar Downloadzahlen sehen kann.

    Interessant wenn du Skripte veröffentlichen möchtest und sehen willst wie viele es schon heruntergeladen haben.

  • StdoutRead-Beispiel @CRLF

    • alpines
    • 27. Juni 2019 um 14:31

    Einfach nur den Code-Tag nehmen, es ist momentan kein AutoIt-Syntax-Highlighter installiert.

    Der Code-Tag lässt den Quellcode wenigstens einigermaßen lesbar rüberkommen.

  • XML einlesen und per URL übergeben

    • alpines
    • 27. Juni 2019 um 13:05
    Zitat von Glare

    Wenn ich die XML Datei per Editor aufrufe und von Hand im Browser an die URL hänge klappt es problemlos. Aber über das Skript bekomme ich immer die Meldung "XML ungültig". Irgendwas wird also an der Datei geändert, weiß aber nicht was.

    Das liegt vermutlich daran, dass die Zeilenumbrüche ignoriert werden wenn du es händisch in die URL-Leiste einfügst. Probier mal die XML mit ShellExecute einzufügen indem du alle Whitespaces und Zeilenumbrüche vorher löscht die zwischen den Tags existieren.

    Du solltest übrigens keine Datei löschen deren Handle du nicht vorher geschlossen hast.

    Und was deine CMD-Parameter angeht weiß ich ehrlich gesagt nicht was du vorhast:

    Code
    Local $aCmdLine = _WinAPI_CommandLineToArgv($CmdLineRaw)
    ;XLM Datei öffnen und auslesen
    $f = FileOpen($CmdLine[1]&".xml")

    Du erzeugst ein Array aus dem $CMDLineRaw aber greifst auf $CMDLine zu, nicht auf $aCMDLine. Lass das $aCMDLine = ... doch direkt weg und nutze nur $CMDLine?

  • StdoutRead-Beispiel @CRLF

    • alpines
    • 27. Juni 2019 um 12:59
    Zitat von Professor Bernd

    Gut dass du den Bugtracker geschrieben hast.

    Es wurde übrigens auch schon darauf geantwortet und das Beispiel wird für die kommenden Versionen angepasst werden.

    Zitat von Professor Bernd

    (Nun gut, einen noch: Kann es sein, dass du englisch "denkst"? Du hast von "Fällen" gesprochen, was eine ungewöhnliche Formulierung darstellt. Hattest du da vielleicht "Issues" im Sinn? )

    Frag nicht, ich weiß selbst kaum was in meinen Gedanken abgeht.

    Zitat von Professor Bernd

    Ehrlich gesagt war ich erstaunt und mächtig stolz, dass ich das überhaupt so gut hingekriegt habe! Zudem war ich aufgeregt darüber, ob mein vermeintlicher Fehlerfund in der Hilfe überhaupt einer ist. Als du dann ins Details gegangen bist, hat mich das motiviert, mich eingehender damit zu befassen. Das Demo habe ich quick-and-dirty erstellt, es sollte nur das Wesentliche veranschaulichen, weshalb ich den Code in eine Funktion verfrachtet habe. Notwendig, oder gar Performance-steigernd sollte das nicht sein. Nur deutlich.

    Das ist auch toll, dass du direkt ein Beispiel erstellt hast um das ganze zu verdeutlichen. Sowas brauchen wir in der AutoIt Community - Hut ab.

    Es ist vermutlich auch Haarspalterei von mir zu sagen, du hättest lieber den Wert returnen sollen als ByRef aber es sah für mich etwas komisch aus, und deshalb dachte ich "fragste doch nochmal nach".

    Deutlicher wäre es für die meisten wohl gewesen wenn es returnt wäre aber das sei mal jedem selbst überlassen welche Variante er bevorzugt.

    Zitat von Professor Bernd

    Dss Arrays habe ich als Referenz an die Funktion übergeben, weil es in dem Moment schnuppe war, effektiven Code zu schreiben. Da ich aus der Übung war, sah ich mir die Hilfe zu "Func" an. Hilfeseite sehr groß, ich in Eile, nur gelesen "Arrays als ByRef übergeben ..." und voila: Schnell zusammengeklöppelt. Hat also keinen tieferen Sinn. (Hinzu kam, dass ich auf die Schnelle nicht wusste, ob man ein Array einfach so retunen kann.)

    Lustigerweise wäre deine Variante theoretisch "performanter" aber der Unterschied ist so vernachlässigbar gering, dass es schon absurd ist - zumindest in diesem Beispiel.

    Zitat von Professor Bernd

    Deklarationen an den Anfang zu setzen war zu meiner Zeit guter Programmierstil. Ist das heute nicht mehr so? Ich persönlich deklariere tatsächlich am liebsten untereinander, statt nebeneinander. Und möglichst "sprechende Namen", statt §sString1, $sString2, ... Ist wohl Geschmackssache.

    Jedem das Seine - es soll jeder machen wie er es für gut hält. Es gibt gewisse Konventionen die sich über die Jahre etabliert haben damit man fremden Code einfacher lesen kann aber das sind nur Konventionen, keine unbrechbare Regeln.

    Ich deklariere auch Variablen untereinander, aber nur wenn die Zeile sonst zu lang wird. Zusammenhängene packe ich gerne hintereinander.

    Du kannst bei größeren Skripten Probleme bekommen wenn du am Anfang der Funktion bereits alle Variablen deklarierst wenn du globale Variablen mit dem selben Namen hast.

    Schau dir mal das Beispiel an:

    Code
    Global $sMyVar = "Erdbeere"
    
    ConsoleWrite($sMyVar & @CRLF)
    
    _MyFunc("Ananas")
    _MyFunc("")
    
    ConsoleWrite($sMyVar & @CRLF)
    
    Func _MyFunc($sString = "")
        Local $sMyVar
    
        If $sString = "" Then
            ConsoleWrite("Ich esse gerne """ & $sMyVar & """." & @CRLF)
        Else
            $sMyVar = $sString
            ConsoleWrite("Ich esse gerne """ & $sMyVar & """." & @CRLF)
        EndIf
    EndFunc
    Alles anzeigen

    Es mag vielleicht etwas konstruiert aussehen aber wenn man globale Variablen ansprechen möchte, in Fällen wo einige Parameter nicht gegeben sind, wird stattdessen die lokale genommen.

    Statt dem Output Ich esse gerne "Erdbeere". steht dort nun Ich esse gerne "".

    Zitat von Professor Bernd

    Was anderes: Ich habe glaube ich einen weiteren "Fehler" gefunden, diesmal in der deutschen Übersetzung. Sieh's dir mal an, sag ob's richtig ist und ob es in einen extra Thread soll.

    Den Vorschlag postest du bitte hier: Fehler in der deutschen Hilfe bitte hier melden (Hilfedatei 3.3.14.5 2019.03.24)

    An sich ist das ein vernünftiger Einwand.

  • StdoutRead-Beispiel @CRLF

    • alpines
    • 27. Juni 2019 um 09:18

    Ja, habs zur Veranschaulichung auch so übernommen dabei auch nur die $sStripedCR umbenannt, denn die Variable ist nicht striped (=gestriffen) sondern stripped (=getrennt,ausgezogen,...)

    Warum das Hilfebeispiel hier meint zwanzig Befehl in eine Zeile quetschen zu müssen ist wahrlich fraglich.

  • StdoutRead-Beispiel @CRLF

    • alpines
    • 26. Juni 2019 um 20:26
    Zitat von Professor Bernd

    Was und wo ist Bugtracker? Und vermutlich wird dort englisch erwartet, was recht anstrengend ist für mich.

    https://www.autoitscript.com/trac/autoit - Das gute Teil hier.

    Dort kann man Tickets erstellen die öffentlich eingesehen werden können und diese werden dann auch von den Entwicklern bearbeitet.

    Ich erstell das Ticket mal und wir sehen was dabei rumkommt. ~~> https://www.autoitscript.com/trac/autoit/ticket/3722

    Zitat von Professor Bernd

    (Oh, kein rot-werd-Smilie. Bitte einfach vorstellen, es wäre eins.)

    Das rolleyes-Smiley sieht seit WBB4 echt bescheuert "genervt" aus obwohl man es eigentlich nicht so meint. Das war der gute alte aus WBB3:

    Deshalb schreibe ich seitdem auch :rolleyes_: Die Mühe ständig das originale von irgendwoher zu verlinken will ich mir nicht machen.

  • StdoutRead-Beispiel @CRLF

    • alpines
    • 26. Juni 2019 um 20:02
    Zitat von Professor Bernd

    Allerdings zeigt sich im Test-Projekt schön, dass der Fehler bei "StringTrimRight" passiert.

    Übrigens hätte das mit $STR_ENTIRESPLIT nicht funktioniert. Da aber der dritte Parameter standardmäßig $STR_CHRSPLIT ist, gibt das Hinweis darüber wie der Fehler durchrutschen konnte.

    Meine ursprüngliche Aussage, dass @LF nicht als Delimeter genutzt wird ist aber falsch, denn es liegt $STR_CHRSPLIT an, d.h. es wird nach jedem einzelnen Zeichen innerhalb des Delimeters gesplittet ~> @CR @LF

    Bitte melde das doch im Bugtracker damit das Hilfebeispiel gefixt werden kann oder sag bescheid wenn du es nicht machen möchtest, damit ich das Ticket erstellen kann.

    Sowas sollte nicht untergehen.

    Und jetzt zu deinem Beispiel, da sind einige Fälle die mich nachdenklich machen, vielleicht kannst du sie ja beantworten:

    Code
    Local $aArray
    SplitIntoArray($sOutput, $aArray)

    Erklär mir doch mal bitte den Gedanken dahinter.

    Wieso übergibst du ein leeres Array als Referenz damit es in der Funktion gefüllt werden kann? Du hättest in der Funktion einfach das Ergebnis vom StringSplit direkt returnen können und hättest diese Rückgabe dann in $aArray direkt speichern können, statt es in zwei Zeilen aufzuteilen.

    Das Array als Referenz zu übergeben macht in diesem Fall absolut keinen Sinn, weil du keine Performanceverbesserung davon hast, ist macht den Code nur unlesbarer.

    Die Funktionen in der Array.au3 z.B. erwarten (fast immer) ein volles Array, bzw. ein Array mit Daten, diese übergibt man per Referenz und nicht als Kopie, damit AutoIt intern das Array nicht duplizieren muss.

    Code
    Local $sStripedCR
    Local $sTrimedOutput
    
    ...
    
    $sStripedCR = ...
    $sTrimedOutput = ...

    Gut, da hätte ich persönlich nichts gegen einzuwenden, allerdings ist deine Funktion ziemlich klein und du benötigst explizit keine Deklaration da du nicht verzweigte Codepfade langläufst wo du in Deklarationsfehler reinstolpern könntest.

    Wenn du die Variablen am Anfang einer Funktion explizit deklarieren möchtest um zu zeigen welche Variablen in der Funktion verwedendet werden würde ich dir aber vielleicht anraten sie in eine Zeile zu packen, etwa wie Local $sStrippedCR, $sTrimmedOutput.

    Aber vielleicht bin ich auch einfach zu penibel und nimm es zu ernst, es soll ja nur ein Beispiel zum illustrieren sein :rolleyes_:

  • StdoutRead-Beispiel @CRLF

    • alpines
    • 26. Juni 2019 um 16:26

    @LF wird nicht als Delimeter benutzt, weil ja @CRLF an StringSplit übergeben wurde. ~> Siehe Post #5

    Generell scheint mir der Funktionsaufruf nicht viel Sinn zu machen.

    Das macht sich auch im ArrayDisplay bemerkbar, denn vom letzten Dateinamen werden Teile abgeschnitten.

    Local $aArray = StringSplit(StringTrimRight(StringStripCR($sOutput), StringLen(@LF)), @LF) wäre die korrekte Variante.

    Local $aArray = StringSplit($sOutput, @CRLF) die wesentlich bessere. (Wir gehen von Windows aus, dort gibts standardmäßig nur @CRLF).

    Im Bugtracker gibts übrigens auch kein Ticket dafür, ich würde dir anraten das dort zu erwähnen, oder wenn du nicht weißt wie man das macht kann ich das auch gerne übernehmen.

  • Uralter Beitrag..... Fehlermeldung exe/au3 Zeilennummerndifferenz

    • alpines
    • 25. Juni 2019 um 19:29

    Wie gesagt, verwende den Au3Stripper, das schreibt dir immer eine _stripped.au3 Datei wo keine Includes vorhanden sind. Die Zeilen sollten hier identisch sein.

  • Uralter Beitrag..... Fehlermeldung exe/au3 Zeilennummerndifferenz

    • alpines
    • 25. Juni 2019 um 17:55

    Der einzige Haken der so ähnlich ist ist dieser hier:

    pasted-from-clipboard.png

    Alternativ kannst du auch einfach den Au3Stripper laufen lassen und so wenig Optionen wie möglich einstellen, das Script welche dann entsteht "*_stripped.au3" ist das was kompiliert wurde.

  • PassIt2 1.1.0 - Dateien zwischen PCs einfach und bequem übertragen!

    • alpines
    • 25. Juni 2019 um 00:27

    Jap, das ist mir beim Kompilieren auf meinem Laptop auch aufgefallen, da hab ich auch noch eine ältere Version drauf.

    Die 3.3.14.5 beschwert sich dort allerdings nicht, aber da ich die Includes so gehalten habe, dass die 3.3.14.0 funktionieren soll hab ich die Direktive mal angepasst.

    Wird ins nächste Update mitaufgenommen.

    Danke fürs Berichten :)

  • PassIt2 1.1.0 - Dateien zwischen PCs einfach und bequem übertragen!

    • alpines
    • 24. Juni 2019 um 21:50

    Tut mir leid, dass es so lang gedauert hat, aber die DPI-Skalierung hat mich wahnsinnig gemacht. Da waren so viele Fälle zu berücksichtigen und dann zickten auch noch Controls willkürlich rum.

    Jetzt hab ich es einigermaßen implementiert bekommen, aber es sind noch einige Unstimmigkeiten vorhanden (Icon in der TransferCompletedGUI skaliert mit, aber Icon selbst bleibt klein).

    Code
    1.1.0 - 24.06.2019 - DPI-Skalierung hinzugefügt, Fixes und GUI-Tippfehler korrigiert
        Magicnumbers ersetzt (0x200 in WM_COMMAND durch $EN_KILLFOCUS)
        
        Codeoptimierung (Zusammenlegung von Code in WM_COMMAND und WM_MOUSEWHEEL)
    
        Balloontooltips bei falschem Eingabeformat (Port, Bandbreitenlimitierung, Update Interval, Timeout)
        UpDown-Controls wurden wegen DPI-Skalierung entfernt (inkompatibel)
    
        DPI-Skalierung hinzugefügt (unterstützt sogar Per-Monitor-DPI-Skalierung)
    
        Tippfehler in der UserGUI korrigiert
    
        GUIs die an Ecken platziert werden (bspw. TransferGUISmall, IncomingFileTransferGUI) werden nunr auch korrekt an der Ecke platziert. Die Desktopposition und die Position der Taskbar werden nun berücksichtigt.
    
        Anzeigefehler in TransferCompletedGUI behoben (IP taucht doppelt auf wenn man an jemand bekannten sendet)
        Anzeigefehler in TransferGUI behoben (Empfänger zeigte nur Namen und nicht auch IP an)
    Alles anzeigen

    Würde mich freuen wenn ihr das testen könntet, hoffentlich hab ich an alles gedacht (wovon ich nicht ausgehe).

  • brauche Hilfe beim Return von einem DLL Call

    • alpines
    • 24. Juni 2019 um 21:31

    Das ist allerdings nur solange gültig bis du die DLL mit DllClose rausschmeißt, das sollte dir klar sein.

    Wenn du keine performancekritische Anwendungen schreibst ist es eigentlich irrelevant wo du sie deklariertst.

    Wenn du keine Fragen mehr hast denk doch bitte dran immer den Haken für "Thread gelöst" zu setzen in dem du den Startpost bearbeitest. Beim letzten Thread hab ich das übernommen.

  • GUIScaler - GUIs automatisch zur DPI skalieren lassen (Windows 7 und Windows 10 Per-Monitor-DPI)

    • alpines
    • 24. Juni 2019 um 21:18

    Hier endlich das Skript um GUIs skalieren zu lassen. Windows 7 und Windows 10 (sogar Per-Monitor-DPI-Scaling!) werden unterstützt.

    Man könnte auch vollends auf WM_DPICHANGED verzichten und ebenfalls für Windows 7 Per-Monitor-DPI-Scaling implementieren aber so tuts erstmal auch.

    Achtung: Einige Controls machen ERHEBLICHE Probleme und einige zicken ein wenig rum. Siehe dazu auch: https://autoit.de/index.php?thread/86493

    Wie nutzt man die UDF? Falls das zu kompliziert ist, es sind viele Kommentare in der UDF enthalten, und sie kommt mit vier Beispiel daher.

    AutoIt
    Local $aControls[2] = [ $hErstesControlderGUI, $hLetztesControlderGUI ]
    _GUI_SetResizing($hGUI, $GUI_CLIENT_WIDTH, $GUI_CLIENT_HEIGHT, $aControls)
    _GUI_Resize($hGUI, $iX, $iY, _WinAPI_GetDpiForMonitor(_WinAPI_MonitorFromWindow($hGUI)))

    Die UDF hat kein Errorhandling also viel Glück xd

    Dateien

    GUIScaling.rar 8,4 kB – 1.066 Downloads
  • GUIs nahezu perfekt DPI-skalierbar machen - sogar mit Per-Monitor-DPI Scaling für Windows 10

    • alpines
    • 24. Juni 2019 um 21:08

    So, bin allmählich am Ende angelangt, sowohl was das Programmieren angeht als auch meine Geduld für dieses be********** Thema, kein Wunder, dass niemand korrekte DPI-Skalierung implementieren möchte.

    Aber hey, Per-Monitor-DPI-Scaling für Windows 10 ist geschafft und Windows 7 Kompatibilität immer noch gewahrt.

    Viel gibts eigentlich dazu nicht mehr zu sagen, die ursprüngliche Idee wurde über den Haufen geworfen wegen Windows 10 und Per-Monitor-DPI-Scaling.

    In den Skripten findet ihr Beschreibung genug, besonders in der GUIFunctions.au3 welche ich hier noch im Skripteforum hochladen werde.

    Einige Controls sträuben sich hardcore, einige zicken anderweitig rum, aber... naja schaut selbst mal rein. https://autoit.de/index.php?thread/86505

    Es gibt sicherlich Stellen im Code die man optimieren kann, aber ich hoffe ihr sehts mir nach, dass ich es langsam leid bin. Arbeite seit über einer Woche etwa 8-9 Stunden pro Tag dran.

  • brauche Hilfe beim Return von einem DLL Call

    • alpines
    • 24. Juni 2019 um 20:50

    Uiuiuiuiu wo soll ich bloß anfangen...

    Du deklarierst innerhalb der Funktion int* GetMyIntegers() das Array int myIntegers[3]. Dir sollte aber klar sein, dass du hier im Funktionsscope bist, also die Variablen nur innerhalb der Funktion existieren.

    Es ist unmöglich von außen drauf zuzugreifen wenn die Funktion abgearbeitet wurde, das was du in der Konsole liest sind einfach Speicherbereiche die dein DllStruct zugeteilt bekommen hat, aber nicht initialisiert wurden.

    Wenn du dein Problem lösen möchtest hast du zwei Möglichkeiten:

    • Nutz malloc/calloc um dir Speicherplatz vom Betriebssystem anzufordern und speichere in den Pointer der dir zurückgegeben wird (nachdem du ihn entsprechend gecastet hast). Es ist dann auch möglich von außen drauf zuzugreifen, weil dein Betriebssystem diesen Speicherbereich erst freigibt wenn das Programm beendet ist, du musst dich also selber um die Verwaltung kümmern.
    • Erzeuge in AutoIt ein DllStruct und übergeb den Pointer zu dem Struct der Funktion die du so umbaust, dass sie bool GetMyIntegers(int* pMyIntegers) heißt. Innerhalb deiner GetMyIntegers funktion kannst du dann einfach ein Array vom Pointer erzeugen (oder einfach Pointerarithmetik betreiben) und reinschreiben. Hast du das getan, musst du nur noch aus der Funktion rausspringen und du kannst in AutoIt mit DllStructGetData($tStruct, 1, 2) bpsw. Index [1] (Indexierung ist 1 basierend!) des Arrays einlesen. Den Boolean-Rückgabewert solltest du verwenden um zu sagen ob deine Funktion erfolreich war oder nicht.
  • Rechnen mit 0

    • alpines
    • 24. Juni 2019 um 16:44

    Strings (sofern sie nicht korrekt als Zahlen interpretiert werden) haben grundsätzlich den Wert 0. Du kannst dem vorbeugen indem du die case-sensitive Prüfung == verwendest.

    Aber auch das ist nicht sehr empfehlenswert, grundsätzlich sollte die Eingabe überprüft werden und die Konstanten im If-Zweig bekannt sein bzw. du solltest ihn anders strukturieren.

    Normalerweise wird die Eingabe immer mit Number oder ähnlichem korrigiert, damit diese auch als korrekte Zahl wahrgenommen wird.

    In deinem Beispiel müsste 0 als String interpretiert werden, d.h. String() um 0 setzen.

  • Freigabe Berechtigungen ausleden

    • alpines
    • 24. Juni 2019 um 15:28

    Was soll in dem String denn stehen? Vielleicht ist ja das ganze codiert bzw. soll so sein, dann wirst du mit einem String nicht weiterkommen.

    Alleine schon aus dem Grund, dass das zweite Zeichen ein 0x00 ist = Stringterminimierung.

  • IE to Excel

    • alpines
    • 24. Juni 2019 um 09:16

    So in etwa?

    Code
    #include <IE.au3>
    
    _IEErrorNotify(False)
    
    Do
        ProcessClose("iexplore.exe")
        $oIE = _IECreate("https://etari.de/de/lackdicken-tabelle/")
    Until IsObj($oIE)
    
    _IEErrorNotify(True)
    
    Local $oTables = _IETagNameGetCollection($oIE, "table")
    
    Local $sCSV = ""
    
    For $oTable In $oTables
        Local $oRows = _IETagNameGetCollection($oTable, "tr")
    
        For $oRow In $oRows
            Local $oItems = _IETagNameGetCollection($oRow, "td")
    
            For $oItem In $oItems
                $sCSV &= StringRegExpReplace($oItem.innerText, "\s+", " ") & ";"
            Next
    
            $sCSV &= @CRLF
        Next
    
        $sCSV &= @CRLF
    Next
    
    FileWrite("output.csv", $sCSV)
    _IEQuit($oIE)
    Alles anzeigen
  • Greetings

    • alpines
    • 24. Juni 2019 um 00:53

    Hello Werty and welcome to AutoIt.de :part:

    although this forum is focused on German discussions you are more than welcome to post in English!

    Since almost everyone here speaks English as a second or third language our help shouldn't come short :)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™