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. BugFix

Beiträge von BugFix

  • IOM 3?

    • BugFix
    • 3. Januar 2010 um 00:09

    Kannst du hier lesen: http://software.magnus.de/programmierung…ll-o-matic.html

  • Ram auslesen?

    • BugFix
    • 2. Januar 2010 um 23:36
    Zitat von Mitch

    soweit ich weiß ist der quellcode bereits freigegeben.
    wie auch immer es ist auch erlaubt mods für jedi knight academy zu schreiben. gegen das auslesen bestehen auch keinerlei sicherheitsmaßnahmen


    Könntest du das mit irgendwelchen Links belegen? Urheberrechtsschutz ist ein heißes Eisen und deshalb legen wir da uch großen Wert drauf, dass hier keiner einen falschen Weg einschlägt.
    Aus diesem Grund sind wir bei solchen Anfragen mit Support sehr zurückhaltend.

  • Bild in Excel einfügen

    • BugFix
    • 2. Januar 2010 um 23:20

    Hier mal aus dem Hut, so in etwa sollte es gehen:

    [autoit]

    $oExcel = ...... ; Excel-Objekt erstellen (Neu/Öffnen)
    $oExcel.ActiveSheet.Range("A1").Select
    $oExcel.ActiveSheet.Pictures.Insert("C:\Pfad\Pfad\Datei.jpg").Select

    [/autoit]

    Edit:
    Achja, die Größe der Grafik läßt sich mit Selection.ShapeRange.... anpassen. Einfach mal nach googeln.

  • Windows 7 fremdes programm wird nicht immer mit gestartet im systray

    • BugFix
    • 2. Januar 2010 um 18:51

    Sorry, aber wenn du ohne Punkt und Komma schreibst und auch der Großschreibung von Hauptwörtern absagst, ist dein Text so gut wie nicht zu verstehen.
    Wir können zwar vieles interpretieren, aber machs uns (und dir) leichter und bring es in lesbare Form. ;)

  • Elendig langen String mit Leerzeichen nach jedem 6. zeichen versehen

    • BugFix
    • 2. Januar 2010 um 16:08

    Hiermit sollte es erheblich schneller gehen (und nur eine Zeile Code :P)

    [autoit]

    $s = '1234567890123456789012345678901234567890'
    ConsoleWrite(StringRegExpReplace($s, '.{1,6}', ' $0') & @CRLF)

    [/autoit][autoit][/autoit][autoit]

    ; EDIT - in der ersten Variante ist noch ein Leerzeichen VOR dem String, besser so:
    ConsoleWrite(StringTrimLeft(StringRegExpReplace($s, '.{1,6}', ' $0'), 1) & @CRLF)

    [/autoit]
  • rechte maustaste emulieren

    • BugFix
    • 2. Januar 2010 um 14:26

    Besser (bzw. gründlicher, Down und Up werden separat behandelt) als _IsPressed ist es, den Middle-Mausklick abzufangen und dem System einen Right-Klick zu senden.
    Das läßt sich mittels Hook realisieren.
    - Empfange Middle-Down, verwerfe diese Message und sende Right-Down an das System
    - Empfange Middle-Up, verwerfe diese Message und sende Right-Up an das System

    So sieht das dann aus:

    Spoiler anzeigen
    [autoit]

    #include <Constants.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    Global Const $HC_ACTION = 0
    Global $hStub_MouseProc = DllCallbackRegister("_MouseProc", "long", "int;wparam;lparam")
    Global $hmod = _WinAPI_GetModuleHandle(0)
    Global $hHook = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, DllCallbackGetPtr($hStub_MouseProc), $hmod)

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet('^+!e', '_ende') ; STRG+SHIFT+ALT+e zum Beenden
    OnAutoItExitRegister('ExitFunc')

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _ende()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _MouseProc($nCode, $wParam, $lParam)
    If $nCode < 0 Then
    Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    EndIf
    If $nCode = $HC_ACTION Then
    Switch $wParam
    Case $WM_MBUTTONDOWN
    Return _mouse_event($MOUSEEVENTF_RIGHTDOWN) ; sendet -1 zurück, Original-Mausklick wird ignoriert
    Case $WM_MBUTTONUP
    Return _mouse_event($MOUSEEVENTF_RIGHTUP) ; sendet -1 zurück, Original-Mausklick wird ignoriert
    EndSwitch
    EndIf
    Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func ExitFunc()
    _WinAPI_UnhookWindowsHookEx($hHook)
    DllCallbackFree($hStub_MouseProc)
    EndFunc ;==>OnAutoItExit

    [/autoit] [autoit][/autoit] [autoit]

    Func _mouse_event($dwFlags)
    DllCall("user32", 'long', 'mouse_event', 'long', $dwFlags, 'long', 0, 'long', 0, 'long', 0, 'long', 0)
    Return -1
    EndFunc

    [/autoit]
  • TcpPort, Array & Dateianzeige

    • BugFix
    • 2. Januar 2010 um 13:30
    Zitat von Jam00

    1. Könnt ihr mir ein Port empfelen den ich für TCP benutzen kann? Also ein Prot der auf den meisten routern freigegeben ist?

    Du kannst niemals davon ausgehen, dass irgendein Port zwingend frei ist (80 mal außen vor). Definiere einen Port für deine Anwendung und teile der Gegenstelle mit, dass dieser Port eine Weiterleitung im Router braucht.
    - Lege einen Bereich von Ports fest, der genutzt werden kann (meide well-kown-ports von Anwendungen, einige findest du in ..system32\drivers\etc\services)
    - starte deine Anwendung mit einem Handshake, das heißt: der Client klappert die Portliste ab, bis er vom Server ein Receive mit z.B. Programmnamen und Protokollversion erhält (kannst du gleich für das Log nutzen).
    So bist du flexibel bei den Ports, falls der Server (warum auch immer) mal auf einen anderen Port ausweichen muß.

    Zitat von Jam00


    2. Kann man per TCP auch Arrays übertragen oder muss ich sie voher in einem String zusammenfassen?

    Du mußt Byte für Byte übertragen, in einer vorher definierten Blockgröße.

    Zitat von Jam00

    3. Ich möchte ein Programm schreiben was mir die Dateinen eines entfernten PCs anzeigt. Muss ich die Anzeige der Dateien Selber schreiben mit ListView oder sowas oder gibt es da schonw as fertiges womit irgendwie was? Also ich wollte dasnn auf dem PC von dem ich die Dateien sehen möche die Dateien mit _FileListToArray (weiß nicht genau ob es richtig geschrieben hab, habe an diesem Pc kein autoit :-() einlesen und dann per TCP übertragen und anschließen auf dem 2 PC anzeigen.

    Dafür würde ich eher fertige Software nutzen (TeamViewer). Wenn du ein Inhaltsverzeichnis übermittelst kannst du das natürlich in einem Listview darstellen.

  • Parameterübergabe

    • BugFix
    • 2. Januar 2010 um 00:17

    Grundsätzlich schon so, wie Karill geschrieben hat.
    Nur fällt mir auf, dass gerade die beiden Parameter, die du vom User festlegen läßt, im Parameterstring in Klammern gefaßt sind. Die anderen Parameter sind ohne Klammern.
    Ich kann mir nicht vorstellen, dass das gewollt ist. Meiner Meinung nach müssen die Klammern weg.

    [autoit]

    RunWait("load.exe --comport="&$comport&" --comspeed=9600 --drive="&$drive&" --command=C:X:30:2:E")

    [/autoit]
  • EIn Feld für Ein- und Ausgabe

    • BugFix
    • 1. Januar 2010 um 11:26

    Bei nur zwei Eingabefeldern kannst du natürlich problemlos hin- und herrechnen, da ist die Richtung klar. Bei 3 Feldern brauchst du eine Zielmarkierung.

    Ich hab mal ein Bsp. für Widerstandsberechnung eingefügt. Dadran kannst du dich orientieren.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    $gui = GUICreate('R = U / I')
    GUICtrlCreateLabel('Berechne', 80, 3, 60, 17)
    GUICtrlCreateLabel('R', 10, 23, 20, 17)
    $inR = GUICtrlCreateInput('', 40, 20, 40, 20)
    $rR = GUICtrlCreateRadio('', 90, 20, 20, 20)
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlCreateLabel('U', 10, 53, 20, 17)
    $inU = GUICtrlCreateInput('', 40, 50, 40, 20)
    $rU = GUICtrlCreateRadio('', 90, 50, 20, 20)
    GUICtrlCreateLabel('I', 10, 83, 20, 17)
    $inI = GUICtrlCreateInput('', 40, 80, 40, 20)
    $rI = GUICtrlCreateRadio('', 90, 80, 20, 20)
    GUISetState()
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _getTarget()
    If BitAND(GUICtrlRead($rR), $GUI_CHECKED) Then
    Return 'R'
    ElseIf BitAND(GUICtrlRead($rU), $GUI_CHECKED) Then
    Return 'U'
    Else
    Return 'I'
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _getVal()
    Local $aOut[3] = [GUICtrlRead($inR),GUICtrlRead($inU),GUICtrlRead($inI)]
    Return $aOut
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit, $aRead
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF)
    $iCode = BitShift($iwParam, 16)
    Switch $iCode
    Case $EN_CHANGE
    Switch $hWndFrom
    Case GUICtrlGetHandle($inR)
    $aRead = _getVal()
    Switch _getTarget()
    Case 'R'
    Return $GUI_RUNDEFMSG
    Case 'U'
    If $aRead[0] = '' Or $aRead[2] = '' Then Return $GUI_RUNDEFMSG
    GUICtrlSetData($inU, $aRead[0]*$aRead[2]) ; U = R*I
    Case 'I'
    If $aRead[0] = '' Or $aRead[1] = '' Then Return $GUI_RUNDEFMSG
    GUICtrlSetData($inI, $aRead[1]/$aRead[0]) ; I = U/R
    EndSwitch
    Case GUICtrlGetHandle($inU)
    $aRead = _getVal()
    Switch _getTarget()
    Case 'R'
    If $aRead[1] = '' Or $aRead[2] = '' Then Return $GUI_RUNDEFMSG
    GUICtrlSetData($inR, $aRead[1]/$aRead[2]) ; R = U/I
    Case 'U'
    Return $GUI_RUNDEFMSG
    Case 'I'
    If $aRead[0] = '' Or $aRead[1] = '' Then Return $GUI_RUNDEFMSG
    GUICtrlSetData($inI, $aRead[1]/$aRead[0]) ; I = U/R
    EndSwitch
    Case GUICtrlGetHandle($inI)
    $aRead = _getVal()
    Switch _getTarget()
    Case 'R'
    If $aRead[1] = '' Or $aRead[2] = '' Then Return $GUI_RUNDEFMSG
    GUICtrlSetData($inR, $aRead[1]/$aRead[2]) ; R = U/I
    Case 'U'
    If $aRead[0] = '' Or $aRead[2] = '' Then Return $GUI_RUNDEFMSG
    GUICtrlSetData($inU, $aRead[0]*$aRead[2]) ; U = R*I
    Case 'I'
    Return $GUI_RUNDEFMSG
    EndSwitch
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]

    Hier mal noch das Bsp. für 2 Werte:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    $gui = GUICreate('Seitenverhältnis')
    GUICtrlCreateLabel('Breite', 10, 23, 40, 17)
    $inB = GUICtrlCreateInput('', 60, 20, 80, 20, $ES_RIGHT)
    GUICtrlCreateLabel('Höhe', 10, 53, 40, 17)
    $inH = GUICtrlCreateInput('', 60, 50, 80, 20, $ES_RIGHT)
    GUICtrlCreateLabel('Breite : Höhe', 60, 90, 120, 17)
    $label1 = GUICtrlCreateLabel('', 60, 120, 80, 17)
    GUICtrlCreateLabel('Höhe : Breite', 200, 90, 120, 17)
    $label2 = GUICtrlCreateLabel('', 200, 120, 80, 17)
    GUISetState()
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF)
    $iCode = BitShift($iwParam, 16)
    Switch $iCode
    Case $EN_CHANGE
    Switch $hWndFrom
    Case GUICtrlGetHandle($inB), GUICtrlGetHandle($inH)
    Local $aRead[2], $aCtrl[2] = [$inB,$inH]
    For $i = 0 To 1
    $aRead[$i] = GUICtrlRead($aCtrl[$i])
    If Not StringRegExp($aRead[$i], '\A[\d.]*\z') Then
    GUICtrlSetData($aCtrl[$i], '')
    Return $GUI_RUNDEFMSG
    EndIf
    Next
    If $aRead[0] = '' Or $aRead[1] = '' Then Return $GUI_RUNDEFMSG
    GUICtrlSetData($label1, '1 : ' & StringFormat('%.2f', $aRead[0]/$aRead[1]))
    GUICtrlSetData($label2, '1 : ' & StringFormat('%.2f', $aRead[1]/$aRead[0]))
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]
  • EIn Feld für Ein- und Ausgabe

    • BugFix
    • 1. Januar 2010 um 10:32
    Zitat von ArnieK

    Gibt es keine Möglichkeit zu überwachen, welches Feld gerade editiert wird,
    unabhängig davon, ob in dem anderen schon etwas steht, und das dann
    automatisch anzupassen?

    Das wäre doch vom Handling optimal.


    Doch, das geht. Nur bedenke: Auch das Löschen eines Inhaltes ist eine Änderung. Wenn zeitgleich noch ein weiteres Input leer ist, ist keine Rechenoperation möglich.
    Die einzige Variante, die für mich sinnvoll erscheint: Jedem Input ein Radio-Ctrl zuordnen und damit das Rechenziel festlegen. Änderungen in den anderen Inputs bewirken dann nur eine Berechnung in diesem Ziel-Input. Hat irgendein Input noch keinen Wert, so wird auch nicht gerechnet.

  • Falsches Datums Format im Array

    • BugFix
    • 1. Januar 2010 um 10:25
    Zitat von oh-ha

    Es kann doch nicht richtig sein das man etwas das schon im richtigen Format vorliegt erst wieder Umwandeln muss um es dann wieder in den selben Format zu bekommen.
    Oder habe ich da ein Verständnis Problem.


    Wenn du innerhalb von Office-Anwendungen Daten hin- und herschiebst, so kannst du dabei auch das Format "mitnehmen".
    Bei Zwischenschalten anderer Anwendungen geht das nicht.
    Bsp.
    Exceltabelle enthält das Datum "1.1.2010"
    - die Formatierung der Zelle ist auf "TT.MM.JJJJ" gesetzt, Anzeige: "01.01.2010"
    - intern speichert Excel aber nur einen Zahlenwert, und zwar: 40179,00 (Basiswert 0 = "00.01.1900")
    Dieser Zahlenwert wird beim Kopieren/Auslesen des Zelleninhaltes übernommen und mit entsprechendem Formatbefehl dann wieder als Datum dargestellt.

    Zitat

    Das Datum steht in der ersten Tabelle als 12.12.2009 im Format Datum, wird dann von Autoit eingelesen als 20091212000000 und so auch in der neuen Tabelle reingeschrieben.

    AutoIt liest den formatierten Datumswert mit allen Angaben als String ein (JJJJMMTThhmmss). Beim Eintragen dieses Strings in eine neue Excelzelle, wird der String mit Standardformat interpretiert und für eine Zahl gehalten.
    Mit der Zuweisung .NumberFormat = "" wird es wieder als String in der Datum-Langform dargestellt.
    Wenn du das Datum in "TT.MM.JJJJ" erstellen möchtest, gehe folgendermaßen vor (spart die Formatierung):

    [autoit]

    ; Datumswert auslesen
    $read = $oExcel.Activesheet.Range('A1').Value ; in A1 steht ein Datumswert (TT.MM.JJJJ)
    ; $read enthält jetzt den String: "JJJJMMTThhmmss"

    [/autoit][autoit][/autoit][autoit]

    ; Zuweisen des Datums in Datumschreibweise TT.MM.JJJJ <== dabei ordnet Excel automatisch das Datumsformat zu
    $oExcel.Activesheet.Range('A4').Value = StringRegExpReplace($read, '(\d{4})(\d{2})(\d{2})(\d{6})', '$3.$2.$1')

    [/autoit]
  • Frohes und Gesundes 2010

    • BugFix
    • 1. Januar 2010 um 00:00

    Hallo,

    ich wünsche allen AutoIt'lern ein Frohes und Gesundes 2010.

  • EIn Feld für Ein- und Ausgabe

    • BugFix
    • 31. Dezember 2009 um 23:55

    Wenn du wechselseitig rechnen willst kannst du nicht das Ereignis des Werteintragens in das Input nutzen, da dann die Rechenrichtung nicht klar wird.
    Du benötigst also einen Start-Button der dann die Berechnung für das jeweils leere Feld ausführt.
    Die Logik ist in einem einfachen If-Statement unterzubringen. (Abfragen, welches Feld ist leer - zugehörige Rechenoperation ausführen)

  • Bild auf Mausposition setzen

    • BugFix
    • 31. Dezember 2009 um 23:32

    An beide Streithähne:
    Auch wir legen Wert auf Netiquette. Bitte mäßigt euch. Nicht in den letzten Minuten des alten Jahres noch Streß aufkommen lassen.

  • Einige Fragen

    • BugFix
    • 31. Dezember 2009 um 22:35
    Zitat von Marthog

    AutoIt hat keine Objektorientierte Programmierung und die ist heutzutage SEHR wichtig und


    Das ist sicher Ansichtssache. Manche Dinge, die du in anderen Sprachen objektorientiert programmierst, lassen sich in AutoIt ohne großen Aufwand anders erledigen. Es kommt immer drauf an, wodrauf man seinen Fokus setzt. ;)

  • Falsches Datums Format im Array

    • BugFix
    • 31. Dezember 2009 um 17:28

    Du schreibst das Datum als eine Nichtdatum-Zahl in die neue Tabelle, dadurch wird das als reine Zahl interpretiert.
    Ich suche mal raus, wie ich sowas gelöst habe und poste es dann.


    Edit:
    Hier als Bsp., den Datumsstring mußt du aber vorher auch in die Form: TT.MM.JJJJ bringen und erst dann eintragen.

    [autoit]

    ; im Bsp. A1 bis A20 als Datum formatieren
    $oSheet.Range('A1:A20').NumberFormat = "TT.MM.JJJJ"

    [/autoit]
  • Listview - Scrollen ohne Scrollbalken

    • BugFix
    • 31. Dezember 2009 um 15:00

    Hier hast du alle:

    Const COLOR_SCROLLBAR = 0 'The Scrollbar colour
    Const COLOR_BACKGROUND = 1 'Colour of the background with no wallpaper
    Const COLOR_ACTIVECAPTION = 2 'Caption of Active Window
    Const COLOR_INACTIVECAPTION = 3 'Caption of Inactive window
    Const COLOR_MENU = 4 'Menu
    Const COLOR_WINDOW = 5 'Windows background
    Const COLOR_WINDOWFRAME = 6 'Window frame
    Const COLOR_MENUTEXT = 7 'Window Text
    Const COLOR_WINDOWTEXT = 8 '3D dark shadow (Win95)
    Const COLOR_CAPTIONTEXT = 9 'Text in window caption
    Const COLOR_ACTIVEBORDER = 10 'Border of active window
    Const COLOR_INACTIVEBORDER = 11 'Border of inactive window
    Const COLOR_APPWORKSPACE = 12 'Background of MDI desktop
    Const COLOR_HIGHLIGHT = 13 'Selected item background
    Const COLOR_HIGHLIGHTTEXT = 14 'Selected menu item
    Const COLOR_BTNFACE = 15 'Button
    Const COLOR_BTNSHADOW = 16 '3D shading of button
    Const COLOR_GRAYTEXT = 17 'Grey text, of zero if dithering is used.
    Const COLOR_BTNTEXT = 18 'Button text
    Const COLOR_INACTIVECAPTIONTEXT = 19 'Text of inactive window
    Const COLOR_BTNHIGHLIGHT = 20 '3D highlight of button
    Const COLOR_2NDACTIVECAPTION = 27 'Win98 only: 2nd active window color
    Const COLOR_2NDINACTIVECAPTION = 28 'Win98 only: 2nd inactive window color

  • Maximale Internetauslastung eines PCs festlegen

    • BugFix
    • 31. Dezember 2009 um 14:18

    Schau dir mal Netlimiter an.

  • Return Code auswerten

    • BugFix
    • 31. Dezember 2009 um 13:22

    Den Fehlerwert nicht anzeigen sondern auswerten.
    (Benutze bitte die AutoIt-Tags, macht den Code lesbarer)

    [autoit]

    RunWait("C:\....1.bat")
    If Not @error Then
    RunWait("C:\....2.bat")
    If Not @error Then
    sleep(2000)
    MouseClick("left",200,500,2)
    Else
    MsgBox(0, 'Fehler', 'Fehler BAT_2')
    EndIf
    Else
    MsgBox(0, 'Fehler', 'Fehler BAT_1')
    EndIf

    [/autoit]


    Da RunWait im Fehlerfall 0 zurückgibt, läßt sich das auch etwas vereinfachen:

    [autoit]

    If RunWait("C:\....1.bat") Then
    If RunWait("C:\....2.bat") Then
    sleep(2000)
    MouseClick("left",200,500,2)
    Else
    MsgBox(0, 'Fehler', 'Fehler BAT_2')
    EndIf
    Else
    MsgBox(0, 'Fehler', 'Fehler BAT_1')
    EndIf

    [/autoit]
  • Benötige " als Text

    • BugFix
    • 31. Dezember 2009 um 10:19

    Der Übersichtlichkeit halber würde ich einfach eine Konstante erstellen (G für Gänsefüßchen ;)) und damit arbeiten:

    [autoit]


    Const $G = '"'; oder Chr(34)
    $Text = "Text"
    ConsoleWrite( $G & $Text & $G & @CRLF)

    [/autoit]

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™