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

Beiträge von wolkenloser

  • Suchen und Ersetzten

    • wolkenloser
    • 5. März 2006 um 16:55

    Hi

    Hat jemadn von euch ein Script (Funktion) mit dem man in einer beliebigen Datei einen String SUCHEN und Ersetzen kann ?

  • Inputbox

    • wolkenloser
    • 5. März 2006 um 11:19

    Hallo,

    wenn Du mit solchen Fragen kommst, fängst Du wohl gerade mit Autoit an.

    An dieser Stelle empfehlen wir jedem sich kurz mal die Einstiegshilfe anzusehen.

    http://autoit.aufwaerts.de/thread.php?threadid=15&sid=

    Mit der Deutschen Hilfe und Scite programiert sich Autoit fast von selber :)

  • Übersetzung der Beta

    • wolkenloser
    • 3. März 2006 um 19:37

    Wie sieht das rechtlich aus ?
    Sind beides "Kauf"-Programme ?

  • Offene Ports mit NetStat anzeigen

    • wolkenloser
    • 2. März 2006 um 06:25

    Schön gemacht :)
    ..kann man bestimmt auch für andere Befehle anwenden (z.B IPCONFIG)

  • Warum AutoIt?

    • wolkenloser
    • 28. Februar 2006 um 21:52

    Für mich ein rel. leichter Weg eine Idee in ein einfaches Programm umzusetzen.

    Womit geht es einfacher ?

    Dazu eine relativ "perfekte" Entwicklungsumgebung (SCITE)
    Und das Beste zum Schluß!
    Alles ist kostenlos

  • TIPS für die richtige AUTOIT Arbeitsumgebung!

    • wolkenloser
    • 27. Februar 2006 um 20:40

    oh, ja genau

    Das ist ja eigendlich genau das was ich meinte.
    Ich wußte nur nicht das es das schon gab :)

  • TIPS für die richtige AUTOIT Arbeitsumgebung!

    • wolkenloser
    • 27. Februar 2006 um 16:36

    Hi,
    Ich fände es gut wenn wir hier so eine Art Einsteigerempfehlung geben für alle die mit AUTOIT starten.
    Vielleicht geben ja mal ein paar Leute Ihre Kommentare und Anregungen hier rein und Pheethebee kann das dann ggf. als immer oben liegenden Threat markieren, oder wie man das eben am besten macht

    Ich fange einfach mal an:
    Jeder der mit Autoit anfängt sollte sich zunächst folgendes besorgen:

    Autoit (LINK?)
    Beschreibung:
    überflüssig, oder :)


    Die Deutsche Hilfe (LINK?)
    Beschreibung:
    Wer die installiert hat ist hier klar im Vorteil :)

    Autoit BETA version (LINK?)
    Beschreibung:
    läuft parallel zur "Normalen" Version. Wer ein bischen tiefer einsteigt wird schon bald nicht mehr ohne auskommen


    SCITE (LINK?)
    Beschreibung:
    Scite ist DER Editor für AU3 Scripte!
    Auch für Anfänger S E H R zu empfehlen
    Es gibt zu jedem Befehl wo der Cursor gerade steht über F1 direkt die Hilfe dazu. Dazu gibt es ein Autovervollständigen (nie mehr Tippfehler)
    Alle Funktionen die sich auf die BETA Version beziehen sind mit der ALT taste erreichbbar (Hilfe über ALT+F1)

  • Scriptomatic.au3

    • wolkenloser
    • 26. Februar 2006 um 17:08

    Hi
    Die Version von GunFood funktioniert bei mir :)

    Kann mir jemand sagen was man damit brauchbares abfragen kann ???

    Man bekommt sehr viel Systeminfos, aber so richtig "klick" hat es bei mir noch nicht gemacht ;(

  • Debug Hilfe

    • wolkenloser
    • 25. Februar 2006 um 08:36

    Normalerweise gebe ich dir Recht,
    aber das ist in diesem Fall nicht möglich, weil dann jeder PC der sich anmeldet für jede Zeile eine MSG Box bestätigen muß.
    Das Script hat aber über 700 Zeilen.

    D.h über 700 Messageboxen
    Das würden andere dann als Virus bezeichnen.
    :D

    Außerdem will ich im nachhinein nachfollziehen können was bei jedem der PCs passiert ist.

    Auch zu jeder Zeile ein Filewriteline hinzufügen möchte ich ausschließen.
    Das wäre eine irre Arbeit, ne lieber nicht.
    Na gut mit einem Script ging es vielleicht...

    Aber das wäre alles nicht "AUTOIT Like"

  • Debug Hilfe

    • wolkenloser
    • 25. Februar 2006 um 07:59

    Hi,

    Ich nutze eine Script mit vielen Funktionen das wärend des loginprozesses läuft. Jetzt hängte es manchmal zu lange und es geht nicht weiter. Ich weiß aber nicht warum.
    Deshalb möchte ich zu Debugzwecken ein Logfile mitschreiben indem ein Zeitstempel vorrangestellt wird um zu sehen welche Funktion das Problem verursacht

    Normalerweise wäre die Information die "Opt("TrayIconDebug", 1)" am TrayIcon erzeugt genau das was ich an Info brauche, nur wärend des loginProzesses ist der Desktop und Trayicon noch nicht geladen so das man das nicht sieht.

    Was ich brauche ist eine Funktion die jede Befehlszeile mit einem Datum versieht und in ein LOG File schreibt.

    Beispiel

    Ich möchte folgende Funktion loggen

    Code
    Func FTP_PUT()
    	$server = '100.100.100.100'
    	$username = 'test'
    	$pass = 'test'
    
    	$Open = _FTPOpen('FTP Inventarisierung')
    	$Conn = _FTPConnect($Open, $server, $username, $pass)
    	$Ftpp = _FtpPutFile($Conn, $AUSGABEFILE, $NAMEFILE)
    	$Ftpc = _FTPClose($Open)
    
    	EndFunc
    Alles anzeigen

    Das logfile sollte dann so aussehen.
    Datumsformat für das logfile: yyyy.mm.dd.hh.mm.ss

    Zitat


    2006.02.25.07.44.02-> $server = '100.100.100.100'
    2006.02.25.07.44.03-> $username = 'test'
    2006.02.25.07.44.03-> $pass = 'test'
    2006.02.25.07.44.03-> $Open = _FTPOpen('FTP Inventarisierung')
    2006.02.25.07.44.05-> $Conn = _FTPConnect($Open, $server, $username, $pass)
    2006.02.25.07.44.05-> $Ftpp = _FtpPutFile($Conn, $AUSGABEFILE, $NAMEFILE)
    2006.02.25.07.44.07-> $Ftpc = _FTPClose($Open)

    Alles anzeigen

    Hat jemand eine Idee ?

    ;(

  • Scriptomatic.au3

    • wolkenloser
    • 24. Februar 2006 um 18:34

    also, bei mir bleibt das Fenster leer....

    ein anderes gefundenes Script hingegen was die CPU last anzeigt funktioniert...

    Bringt mal Beispiele wenn Ihr habt....

  • Hotfix Integration in SP2 XP-CD

    • wolkenloser
    • 24. Februar 2006 um 12:24

    der erste test war schon mal negativ :(
    keins der integrierten Patches war integriert :(

  • Hotfix Integration in SP2 XP-CD

    • wolkenloser
    • 23. Februar 2006 um 22:10

    Hi ,
    ich hatte mir eine kleine Hotfix Update Rotine geschrieben, die in etwa das macht, was auch die diversen HotfixPaketet machen.

    Ein Nebenprodukt ist dieses Script hier geworden.

    Ein Script mit dem man alle Patches aus einem Ordner (z.B den DATA Ordner aus dem Update Pack von Winboard.org) in eine XP-CD mit SP2 integrieren kann.

    Zuerst wird nach dem Ordner gefragt wo der "I386" Ordner drin liegt.

    Dann wird nachdem Ordner gefragt wo die Hotfixes drin liegen.

    Den Rest besorgt das Script.

    Die CD müßt Ihr hinterher natürlich noch selber Brennen.

    Das ganze ist noch nicht 100 % getestet, also keine Garantie, das es klappt :)

    Ich hoffe aber schon.


    C
    #include <file.au3>
    #include <Process.au3>
    #include <Date.au3>
    #include <Constants.au3>
    #include <Array.au3>
    
    
    Opt("RunErrorsFatal",0)
    Opt("TrayIconDebug", 1) ; zeigt am trayicon welchen Befehl  das Script gerade Ausführt
    $hotfix_inifile = @TempDir & "\hotfix.ini"
    
    
    
    
    dim $KB_read
    dim $hotfixfind
    dim $hotfixfile
    dim $search2
    dim $abbruch
    dim $hotfix_dir
    dim $mylist
    dim $Form1
    dim $anzahl_Patches
    dim $strArr
    Dim $mapdrive
    Dim $CHECK_RUN
    dim $installierte_Patches
    dim $progress_full
    Global $zaehler
    dim $deltafile
    dim $font
    dim $myprogress
    dim $mylabel
    dim $myprogress
    dim $OS_INFO
    dim $i386
    
    
    
    
    
    ;--- HOTKEY für Abbruch -----
    HotKeySet("!{ESC}","abbruch")
    
    
    	
    ; --- Programm ablauf
    FileDelete("c:\integrate.log")
    slipstream()
    
    
    ;--- Funktionen
    
    
    Func slipstream()
    	$i386 = FileSelectFolder("Ordner für XP SP2 Boot CD auswählen", "")
    	$hotfix_sp2_dir =  FileSelectFolder("Ordner mit den zu integrierenden Files auswählen", "")
    	$hotfix_dir = $hotfix_sp2_dir
    	Hotfix_auslesen_xp_sp2()
    	slipstream_sp2()
    EndFunc	
    
    
    
    
    Func slipstream_sp2()
    ; Gui erzeugen	
    $Form1 = GUICreate("Update Übersicht", 700, 220, 10 , 10)	
    
    
    $myprogress = GUICtrlCreateProgress(150,180,500,20)
    $OS_INFO = GUICtrlCreateLabel(@OSversion & " " & @OSServicePack & " Hotfix Updater by WOLKE",150,20,300,50)
    $mylabel = GUICtrlCreateLabel($deltafile & @CR & "wird jetzt integriert"& @CR & "Update " & $zaehler & " von " & $anzahl_Patches, 150, 100, 500, 150)
    GUICtrlSetFont ($mylabel,14, 400, 1, $font)  
    
    
    
    
    If DriveGetType($hotfix_dir) = 'Network' And DriveGetType($hotfix_dir) <> 'Unknown' Then
     $mapdrive = DriveMapAdd("*", $hotfix_dir)
    EndIf
    ;~ DriveMapAdd("B:", $hotfix_dir)
    FileChangeDir( $mapdrive)
    
    
    ;--- neue Methode mit 1D Array
    $var = IniReadSection($hotfix_inifile,"HOTFIX"); INI Datei in 2D Array einlesen
    If @error Then 
    ;~     exit_error_func()
    		DriveMapDel($mapdrive)
    		MsgBox(64,"ACHTUNG","keine neuen Patches gefunden" & @CR &  "Überpfüfung wird beendet",4)
    		Exit
    	Else
    		;--- ARRAY von 2D nach 1D wandeln, Thanks To ARI
    		$anzahl_Patches = $var[0][0]
    		For $i = 1 To $var[0][0]
    			$strArr = $strArr & '|' & $var[$i][0]
    		Next
    
    		If StringLeft($strArr , 1) = '|' Then
    			$strArr = StringTrimLeft($strArr, 1)
    		EndIf
    
    		$arrNewArr = StringSplit($strArr, '|')
    		_ArraySort( $arrNewArr)
    
    
    		;--- $hotfix_inifile sortiert zurückschreiben
    		FileDelete($hotfix_inifile); erst löschen
    		For $i = 1 To $arrNewArr[0]
    				IniWrite($hotfix_inifile,"HOTFIX",$arrNewArr[$i],1)
    			Next
    
    
    		;--- sortiertes Array - Patches nacheinander installieren
    		$anzahl_Patches = $arrNewArr[0]
    
    ;~ 		ProgressOn("Windowsupdate","Updates werden installiert",10 , @DesktopWidth/2-200,16)
    		For $i = 1 To $arrNewArr[0] ;$arrNewArr[0] entspricht der Anzahl der zu instalierenden Patches
    				GUICtrlDelete($mylist)
    				$mylist = GUICtrlCreateList("",5 ,15, 120, 200)
    				Liste_anzeigen()
    
    				$zaehler= $i
    
    				$search = FileFindFirstFile("*" & $arrNewArr[$i] & "*"); Suche nach dem Patch mit der KB-Nummer
    					If @error Then ExitLoop
    				$deltafile = FileFindNextFile($search)				; Name des kompletten Files finden
    				;~ MsgBox(0,"",$deltafile)
    				FileClose($search)
    ;~ 				SplashTextOn("Windowsupdate",$deltafile & " wird jetzt installiert"& @CR & "Update " & $zaehler & " von " & $anzahl_Patches , 600, 50, @DesktopWidth/2-300, 10)
    				$progress_full = (100/$anzahl_Patches*$zaehler)
    ;~ 				ProgressSet($progress_full, "HOTFIX " &  $zaehler & " von " & $anzahl_Patches & " wird jetzt installiert", $deltafile)
    
    				GUICtrlSetData($myprogress,$progress_full)
    
    				GUICtrlSetData($mylabel,$deltafile & @CR & "wird jetzt installiert"& @CR & "Update " & $zaehler & " von " & $anzahl_Patches)
    				GUISetState()				
    
    				RunWait($deltafile & ' /passive /integrate:' & $i386 & ' /log:c:\temp.log')
    				_RunDOS('echo ----------------------------------------------------- >>c:\integrate.log')
    				_RunDOS('type c:\temp.log >>c:\integrate.log')
    
    					$logfile = FileOpen("c:\temp.log", 0)
    
    						; Check if file opened for reading OK
    						If $logfile = -1 Then
    							MsgBox(0, "Error", "Unable to open file.")
    							Exit
    						EndIf
    
    						; Read in lines of text until the EOF is reached
    						While 1
    							$line = FileReadLine($logfile)
    							If @error = -1 Then ExitLoop
    							$integrateerror = StringInStr($line, "Fehler")
    							if $integrateerror > 0 Then
    								MsgBox(4096,"ACHTUNG","Es ist ein Fehler beim integrieren des Hotfixes aufgetreten." & @CR & "Bitte überprüfen Sie das Logfile")
    							EndIf	
    						Wend
    
    					FileClose($logfile)
    
    
    				
    
    				IniDelete($hotfix_inifile,"HOTFIX",$arrNewArr[$i])	; installieren Patch aus der INI-Datei entfernen
    
    ;~ 				SplashOff()
    
    
    				if $zaehler == $anzahl_Patches Then  exitfunc()
    				$var2 = EnvGet("abbruch")							; IF (Abbruch Variable durch HOTKEY ausgelößt) THEN Abarbeitung beenden
    					if $var2 == 1 Then 
    						MsgBox(4096,"Windowsupdate", "Das Update wird auf Anforderung abgebrochen" & @LF &  "Beim nächsten LOGIN wird an dieser Stelle angeknüpft",4)
    						exitfunc()
    					EndIf
    
    			Next
    			GUIDelete($Form1)		
    	EndIf
    EndFunc
    
    
    
    
    Func Hotfix_auslesen_xp_sp2()
    
    
    FileDelete($hotfix_inifile)		; Neustart
    FileChangeDir ($hotfix_dir)		; Pfad zu den ausgepackten Hotfixes
    $search2 = FileFindFirstFile("*-x86-*.exe"); Suchmuster für Patchfiles
    If $search2 = -1 Then
    	MsgBox(16, "Error", "Keine Patchfiles gefunden - Bitte das Quellverzeichnis überprüfen")
    	Run("Explorer " & $hotfix_dir)
        Exit	
    
    
    Else
    ;--- Liste der Hotfixes im Hotfixverzeichnis nach Muster KB?????? erstellen
    	While 1
    		$hotfixfind = FileFindnextFile($search2)			; erstes Patchfile ;~ MsgBox(0, "", $hotfixfind)	
    			if @error = 1 Then ExitLoop
    		$KB_STRING = StringSplit($hotfixfind,"-x86-",1)		;KB Nummer isolieren 1 ;~ MsgBox(0, "", $KB_STRING[1])	
    		$KB_STRING2 = StringSplit($KB_STRING[1],"-",1)		;KB Nummer isolieren 2 ;~ MsgBox(0, "", $KB_STRING2[2])	
    		IniWrite($hotfix_inifile,"HOTFIX",$KB_STRING2[2],1)	;KB Nummer in INI-File schreiben
    	WEnd
    	FileClose($search2); Close the search handle
    EndIf
    ;~ Hotfix_vergleich_xp_sp2()
    EndFunc
    
    
    
    
    Func Liste_anzeigen()
    ;--- Patchliste erzeugen
    
    
    
    
    $deltafile = IniReadSection($hotfix_inifile,"HOTFIX")
    	For $i = 1 To $deltafile[0][0]
    		GUICtrlSetData($mylist,$deltafile[$i][0])
    		IniWrite($hotfix_inifile,"NOW",$deltafile[$i][0],1)
        Next
    
    
    EndFunc
    
    
    
    
    
    
    
    
    Func exitfunc()
    ProgressOff()
    DriveMapDel($mapdrive)
    MsgBox(48,"!!! Integeration abgeschlossen !!!","Es wurden " & $zaehler & " von " & $anzahl_Patches & " Updates installiert " & @CR & "Bitte Überprüfen Sie das Logfile")
    FileDelete("c:\temp.log")
    Run('notepad' & ' c:\integrate.log')
    
    
    
    
    Exit	
    EndFunc	
    
    
    
    
    Func exit_error_func()
    DriveMapDel($mapdrive)
    MsgBox(16,"FEHLER","Es ist ein Fehler bei der INTEGRATION aufgetreten",5)
    Exit	
    EndFunc	
    
    
    Func Abbruch()
    	EnvSet("Abbruch",1)
    	MsgBox(24,"!!! ACHTUNG !!!","Die Update- Aktion wird nach dem nächsten Patch abgebrochen",4)
    EndFunc
    Alles anzeigen
  • Scriptomatic.au3

    • wolkenloser
    • 23. Februar 2006 um 18:44

    Jetzt bin ich schon viel schlauer.

    Infos zu WMI


    Bin gespannt was Du noch dazu schreibst.

    Praktische Beispiele mit AUTOIT z.B :)

  • Scriptomatic.au3

    • wolkenloser
    • 23. Februar 2006 um 18:34

    Ich glaube dann warte ich noch ein bischen.
    Ich hab ne Ahnung was WMI Infos sind, aber genau könnte ich das nicht sagen....

    Waren das die Geräte infos die z.B AIDA32/EVEREST liefert ? (das wäre ja geil!!)

  • Scriptomatic.au3

    • wolkenloser
    • 23. Februar 2006 um 16:57

    irgendwie kann ich mir unter Scriptomatic nicht so recht was vorstellen.

    Was kann mann damit den was nicht soweiso mit Autoit ginge ?

    hast Du mal irgendein Beispiel.
    Ich tue mich mit dem English immer so schwer !!

  • Win Explorer - Erweiterte Einstellungen

    • wolkenloser
    • 20. Februar 2006 um 19:56

    Hi,

    eigendlich hatte ich das falsche Script eingestellt, denn es ging Dir um das Check und Uncheck.

    Guck dir das noch mal an:

    Code
    ; Schnellstartleiste aktivieren
    BlockInput(1)
    AutoItSetOption("MouseCoordMode", 1)
    Run("rundll32.exe shell32.dll,Options_RunDLL 1")
    Winwait("Eigenschaften von Taskleiste und Startmenü", "Taskleiste")
    ControlCommand("Eigenschaften von Taskleiste und Startmenü", "Taskleiste", "Button5","Check", "")
    ;ControlClick("Eigenschaften von Taskleiste und Startmenü", "Taskleiste", "Button5")
    Sleep(500)
    ControlClick("Eigenschaften von Taskleiste und Startmenü", "Taskleiste", "Button11");OK
    WinWaitClose("Eigenschaften von Taskleiste und Startmenü", "Taskleiste")
    BlockInput(0)
    exit
    Alles anzeigen
  • AutoItGUIBuilder

    • wolkenloser
    • 20. Februar 2006 um 19:51

    Hi Markus,

    Ich habs mir mal angeguckt.
    Es funktioniert bei mir jetzt wesendlih besser, auch wenn ich einige Funktionen noch nicht so ganz verstehe (Menue, TreeViewItem,...) wie das zu Handhaben ist.

    So aber ne feine Sache !

  • Winwaitactive() mit OR nutzen ?

    • wolkenloser
    • 18. Februar 2006 um 08:27

    versuch es doch mal mit einer "If Then Elseif" Schleife.

    Beispiele findest Du in der Hilfe wenn Du "if" als suchbegriff eingibst:

    Code
    $titel1 = winwaitactive(...
    $titel2 = winwaitactive(...
    
    
    if $titel1 == 1 then
        funktion1()
    endif
    if $titel2 == 1 then
        funktion2()
    endif
  • Win Explorer - Erweiterte Einstellungen

    • wolkenloser
    • 17. Februar 2006 um 07:36

    guck mal hier:

    Code
    AutoItSetOption("MustDeclareVars", 1)
    AutoItSetOption("MouseCoordMode", 0)
    AutoItSetOption("TrayIconDebug", 1)
    Dim $Prog
    EnvSet("C:\WINDOWS\explorer.exe", $Prog)
    Run("C:\WINDOWS\explorer.exe") ;15:10:56
    Sleep(2000)
    ;
    ; ----------------------------------------------------------------------------------
    ; Script Start:
    ; ----------------------------------------------------------------------------------
    ;
    ; Aktiver Fenster Titel:
    ; ----------------------
    WinWait("Eigene Dateien");15:10:56
    Sleep(1000)
    send ("{ALT}") 	;Ansicht
    send ("a")
    Sleep(1000)
    send ("d") 	;Ansicht Details auswählen
    Sleep(1000)
    send ("{ALT}") 	;Ordneroptionen
    send ("x")
    send ("o")
    send ("!w")	;Stadart wiederherstellen
    sleep (1000)
    send ("h")	;herkömlichen Windowsordner
    send ("s")	;jeden Ordner im selben Fenster
    Sleep(1000)
    send ("b")	;übernehmen
    
    
    send ("+{TAB}")	;zum Karteireiter Ansicht wechseln
    send ("{RIGHT}")
    AutoItSetOption("MouseCoordMode",0); relative Mausekooridinaten
    ;MouseClick("left",91,40,1, 0);Reiter wählen
    sleep (1000)
    send ("!w")	;Stadart wiederherstellen
    MouseClick("left",61,206,1, 0);Ansichtsoptionen für jeden Ordner abspeichen = AUS
    Sleep(1000)
    MouseClick("left",61,222,1, 0) ;Aut. Nach Netzwerkdruckern suchen = AUS
    Sleep(1000)
    MouseClick("left",61,238,1, 0) ;Einfache Dateifreigabe = AUS
    Sleep(1000)
    MouseClick("left",61,252,1, 0) ;Einfache Ordneransicht = AUS
    Sleep(1000)
    MouseClick("left",61,271,1, 0) ;Ereiterungen für bekannte Dateitypen ausblende = AUS
    Sleep(1000)
    MouseClick("left",61,286,1, 0) ;
    Sleep(1000)
    send ("{PGDN}")
    send ("{PGDN}")
    Sleep(1000)
    MouseClick("left",61,318,1, 0) ;
    Sleep(1000)
    MouseClick("left",61,335,1, 0) ;
    Sleep(1000)
    send ("!b")
    Sleep(1000)
    send ("!a")	;Für alle Ordner übernehmen
    Sleep(1000)
    send ("!j")	;bestätigen
    sleep (1000)
    
    
    
    
    send ("+{TAB}");Zum Karteireiter Offlinedateien
    send ("{RIGHT}")
    send ("{RIGHT}")
    Sleep(1000)	;Offlinedateien deaktivieren
    send ("!d")
    Send("{-}")	;Offlinedateien safe_unchecked!!
    Sleep(1000)
    send ("!b")
    Sleep(1000)
    send ("{ENTER}")
    Sleep(1000)
    send ("!{F4}")
    
    
    exit
    Alles anzeigen

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™