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

  • Such- und Löschfunktion

    • BugFix
    • 17. November 2006 um 10:31

    Du hast recht - er tuts nur mit der Lizenz zum Töten :rofl: (Flag 1, Löschen von Unterverzeichnissen und Files erlaubt)
    Muß dann so aussehen:

    [autoit]

    DirRemove($Daten[$i], 1)

    [/autoit]

    Aber das Log sollte zumindest die gefundenen Ordner schon mal zeigen -auch wenn der Löschvorgang nicht erfolgreich war. Bei mir hat er es getan.

  • Such- und Löschfunktion

    • BugFix
    • 17. November 2006 um 02:13

    Jaja -so ein Schlingel ;)
    Aber wir wollen mal nicht so sein. Ich hab dir noch eine Logdatei hinzugefügt, damit du auch siehst, was passiert ist.

    Spoiler anzeigen
    [autoit]

    $StartPfad = "C:\Dokumente und Einstellungen"
    $SuchOrdner = "XYZ"
    $Daten = _GetFileList($StartPfad, "n",1)
    $file = FileOpen(@MyDocumentsDir & "\Remove.log", 1) ; Logfile mit Eintrag der gelöschten Ordner
    FileWriteLine($file, "Start: [" & @YEAR & "-" & @MON & "-" & @MDAY & " / " & @HOUR & ":" & @MIN & ":" & @SEC & "]" & @CRLF & "gelöscht wurden:")
    For $i = 1 To $Daten[0]
    If StringRight($Daten[$i], StringLen($Daten[$i]-StringInStr($Daten[$i], "\", Default, -1))) = $SuchOrdner Then
    DirRemove($Daten[$i])
    FileWriteLine($file, $Daten[$i])
    EndIf
    Next
    FileWriteLine($file, "Ende: [" & @YEAR & "-" & @MON & "-" & @MDAY & " / " & @HOUR & ":" & @MIN & ":" & @SEC & "]")
    FileClose($file)
    MsgBox(0, '', "Ich haben fertig...")

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

    ; Function: _GetFileList($T_DIR,$T_MASK[,$DIR_ONLY=0])
    ; AutoIt Version: 3.0
    ; Language: English
    ; Platform: Win9x/NT/XP
    ; Author: jos van der Zande
    ;
    ; Find files in directory and subdirectories and return it in an Array, all coded in Autoit3
    ;
    ;********************************************************************************
    ;Recursive search for filemask
    ;********************************************************************************

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

    Func _GetFileList($T_DIR,$T_MASK,$DIR_ONLY=0)
    Dim $N_DIRNAMES[200000] ; max number of directories that can be scanned
    Local $N_DIRCOUNT = 0
    Local $N_FILE
    Local $N_SEARCH
    Local $N_TFILE
    Local $N_OFILE
    Local $T_FILENAMES
    Local $T_FILECOUNT
    Local $T_DIRCOUNT = 1
    Local $FILEMASK
    ; check Filemask \ for empty File-Array by GetDirOnly
    If $FILEMASK = "n" Then $FILEMASK = "*.no"
    ; remove the end \ If specified
    If StringRight($T_DIR,1) = "\" Then $T_DIR = StringTrimRight($T_DIR,1)
    $N_DIRNAMES[$T_DIRCOUNT] = $T_DIR
    ; Exit if base dir doesn't exists
    If Not FileExists($T_DIR) Then Return 0
    ; keep on looping until all directories are scanned
    While $T_DIRCOUNT > $N_DIRCOUNT
    $N_DIRCOUNT = $N_DIRCOUNT + 1
    ; find all subdirs in this directory and save them in a array
    $N_SEARCH = FileFindFirstFile($N_DIRNAMES[$N_DIRCOUNT] & "\*.*")
    While 1
    $N_FILE = FileFindNextFile($N_SEARCH)
    If @error Then ExitLoop
    ; skip these references
    If $N_FILE = "." Or $N_FILE = ".." Then ContinueLoop
    $N_TFILE = $N_DIRNAMES[$N_DIRCOUNT] & "\" & $N_FILE
    ; if Directory than add to the list of directories to be processed
    If StringInStr(FileGetAttrib( $N_TFILE ),"D") > 0 Then
    $T_DIRCOUNT = $T_DIRCOUNT + 1
    $N_DIRNAMES[$T_DIRCOUNT] = $N_TFILE
    EndIf
    Wend
    FileClose($N_SEARCH) ; find all Files that mtach the MASK
    $N_SEARCH = FileFindFirstFile($N_DIRNAMES[$N_DIRCOUNT] & "\" & $T_MASK )
    If $N_SEARCH = -1 Then ContinueLoop
    While 1
    $N_FILE = FileFindNextFile($N_SEARCH)
    If @error Then ExitLoop
    ; skip these references
    If $N_FILE = "." Or $N_FILE = ".." Then ContinueLoop
    $N_TFILE = $N_DIRNAMES[$N_DIRCOUNT] & "\" & $N_FILE
    ; if Directory than add to the list of directories to be processed
    If StringInStr(FileGetAttrib( $N_TFILE ),"D") = 0 Then
    $T_FILENAMES = $T_FILENAMES & $N_TFILE & @CR
    $T_FILECOUNT = $T_FILECOUNT + 1
    ;MsgBox(0,'filecount ' & $T_FILECOUNT ,$N_TFILE)
    EndIf
    Wend
    FileClose($N_SEARCH)
    Wend
    If $DIR_ONLY = 0 Then
    $T_FILENAMES = StringTrimRight($T_FILENAMES,1)
    $N_OFILE = StringSplit($T_FILENAMES,@CR)
    Return( $N_OFILE )
    Else
    ReDim $N_DIRNAMES[$N_DIRCOUNT+1]
    $N_DIRNAMES[0] = $N_DIRCOUNT
    Return $N_DIRNAMES
    EndIf
    EndFunc ;==>_GetFileList

    [/autoit]

    EDIT:

    Falls du nicht ganz durchsiehst, was in der Schleife in der IF-Abfrage passiert (ist am Anfang nicht so einfach, bei den String-Funktionen durchzusehen ;) ) - ich habs nochmal auseinander gepflückt.

    Spoiler anzeigen
    [autoit]

    For $i = 1 To $Daten[0]
    $Position = StringInStr($Daten[$i], "\", Default, -1) ; ermittelt Position des ersten Backslash von rechts
    $Anzahl = StringLen($Daten[$i]) - $Position ; ermittelt die Zeichenzahl des Ordnernamens
    $VergleichOrdner = StringRight($Daten[$i], $Anzahl) ; Ordnername wird abgeschnitten
    If $VergleichOrdner = $SuchOrdner Then
    DirRemove($Daten[$i])
    FileWriteLine($file, $Daten[$i])
    EndIf
    Next

    [/autoit]
  • Such- und Löschfunktion

    • BugFix
    • 16. November 2006 um 19:58

    Schau mal hier: http://autoit.aufwaerts.de/thread.php?threadid=1249&hilight=rekursiv
    Mit der Funktion von Jos:

    [autoit]

    $Daten = _GetFileList($Pfad,$Extension,1) ; alle Ordner

    [/autoit]

    werden ab "$Pfad" alle Unterordner rekursiv ausgelesen. Da du nur die Ordner ausliest, übergibst du für "$Extension" einen nicht existierenden Wert (z.B. "n").
    Im Array "$Daten" findest du dann alle Unterordner .
    Jetzt kannst du das Array nach deinem gesuchten Ordner durchforsten und -falls vorhanden - löschen.
    Mit der Lösung von mR. sEx p!sT0Ls kannst du nur den angegebenen Pfad durchsuchen - also nicht rekursiv.

  • Erste Hilfe

    • BugFix
    • 16. November 2006 um 09:39
    Zitat

    also wohin mit den "local.properties"????????????????????????


    In das Wurzelverzeichnis von SciTE:
    "...\Scite\"

  • aus txt lesen

    • BugFix
    • 15. November 2006 um 23:49

    Deinen Text mußt du natürlich innerhalb der Schleife in die entsprechende Datei einfügen.

  • Auslesen des html mit IE.au3

    • BugFix
    • 12. November 2006 um 11:58
    [autoit]

    $oIE = _IECreate ("http://www.google.com")

    [/autoit]

    Das Objekt für die Seite "www.google.com" wird erzeugt und der Variablen "$oIE" zugewiesen

    [autoit]

    $oForm = _IEFormGetObjByName ($oIE, "f")

    [/autoit]

    Erzeugt eine Referenz zu einer Form in deinem Objekt "$oIE"

    [autoit]

    $oQuery = _IEFormElementGetObjByName ($oForm, "q")

    [/autoit]

    Erzeugt eine Referenz zu einem Element auf der Form "f" deines Objekts "$oIE".

    [autoit]

    _IEFormElementSetValue ($oQuery, "AutoIt IE.au3")

    [/autoit]

    Setzt den Wert für das ausgewählte Formelement

    EDIT:
    Muß was korrigieren. Da war ich etwas zu schnell beim Lesen.

    "f" ist der Name der Form die du auswählen willst.
    "q" analog der Name des auszuwählenden Elements.
    Wo du die herbekommst? - Ich denke mal aus dem Seitenquelltext.

  • Alles Gute, th.meger

    • BugFix
    • 12. November 2006 um 09:41

    Ich sei,
    gewähret mir die Bitte,
    in eurem Bunde hier
    der Dritte.

    Hallo Mega, zu deinem Geburtstag alles Gute und noch viele schöne AutoIt-Stunden. ;)

    :klatschen: :klatschen: :party: :kette:

  • Uebersetzung auf Deutsch vom autoit.com - Posts - Mach es oeffen

    • BugFix
    • 11. November 2006 um 19:11

    Hola, mi amigo!
    ¡ que te diviertas en foro "www.AutoIt.de"!

    Das war schon sehr viel spanisch für meine Verhältnisse. :klatschen:
    Aber vielleicht können wir die Spanisch-Kenntnisse unserer Foren-Mitglieder verbessern, indem du uns zu einer Sprachreise in dein schönes Heimatland einlädst ? (im Sommer würde es mir am besten gefallen) :rofl:

  • Tabs + IPedits = Fehler

    • BugFix
    • 11. November 2006 um 18:35

    aus der Hilfe:

    Zitat

    _GUICtrlIpAddressCreate(hwnd, left, top, width, height[, style[, exstyles]])
    hwnd: handle to a gui window

    Ich lese das so, dass du dieses Control nur in eine GUI einsetzen kannst und nicht in ein Control einer GUI.

  • Seriennummer Encodieren ???

    • BugFix
    • 9. November 2006 um 23:26
    Zitat

    Original von Phillipk
    ich weiß nicht genau, aber ich meine das die unverschlüsselten nummern immer gleich sind oder? nun ich MEINE das mein dad mir mal sowas erzählt hat weil man sonst pro nummer nen eigenes prog bräuchte... oder so :-/


    Ich kann mich erinnern, dass ich vor geraumer Zeit mal einen Beitrag zu dem Thema gelesen hab. Ich hoffe, dass ich mich noch richtig dran erinnere. ;)
    Und dein Dad liegt gar nicht mal so falsch.
    Ich weiß nicht mehr die Stückzahl, aber ich glaube für jeweils 5 - 10.000 Pressungen wird der gleiche Basisschlüssel verwendet. D.h. jede dieser CD's läßt sich mit bis zu 10.000 verschiedenen Seriennummern aktivieren, weil durch den verwendeten Alghoritmus immer wieder der Basisschlüssel abgebildet wird. Wäre ja auch wirklich widersinnig, wenn jede CD einzeln gepresst werden müsste für eine einzige Seriennummer.

  • doppelte einträge im listview

    • BugFix
    • 8. November 2006 um 21:33
    Zitat

    hat jemand ne ahnung obs eine funktion gibt, die auch in 2 dimensionalen arrays sucht???


    Von Haus aus gibts da keine Funktion.
    Als Alternative:
    - lagere die Dimension, die den Search-Wert enthält in ein 1D-Array aus
    - suche auf dieses Array anwenden
    - Ergebnisindex auf Ausgangsarray anwenden

  • Func nacheinander starten

    • BugFix
    • 5. November 2006 um 21:31

    Bin mir nicht ganz sicher, ob ich verstanden habe, was du willst.
    Aber warum hinterlegst du die Funktionen nicht in einem Array ?
    Dann kannst du zugehörige Parameter dort mit ablegen.
    Wahlweise rufst du einzelne Elemente des Arrays auf oder du durchläufst die Arrayelemente nacheinander.

  • Browser texte

    • BugFix
    • 4. November 2006 um 12:12
    Zitat

    Naja sieht nicht da nach aus rolleyes
    des hat 3 funktionen:

    Dann nimm mal die Beta. Da sind 48 Funktionen!

  • Browser texte

    • BugFix
    • 4. November 2006 um 08:41

    In Autoit gibts doch die IE.au3 . Schau mal in der Hilfe nach - ich denke schon, dass dumit diesen Funktionen dein Problem lösen kannst.
    Einziger Nachteil: Du musst mit dem InternetExplorer arbeiten. Da ich den i. A. nur mit der Kneifzange anfasse, kann ich dir jetzt keine Beispiellösung anbieten.

  • 2 txt dateien vergleichen und 1ne machen

    • BugFix
    • 3. November 2006 um 19:59

    Dazu muß man wissen, worin der Unterschied zwischen beiden Dateien bestehen wird.
    Wenn eine Datei den gleichen Inhalt wie die andere hat + zusätzlicher Daten ist es recht einfach.
    Sind mal mehr und mal weniger Daten enthalten ist das etwas schwieriger.
    Mein Vorschlag:
    - Datei 1 u. 2 zumLesen öffnen
    - Ergebnisdatei zum Schreiben öffnen
    - zeilenweise vergleichen (in Abhängigkeit von s. oben)
    - Ergebnis in Datei schreiben

  • compilierte exe spinnt

    • BugFix
    • 3. November 2006 um 09:07

    Eines erscheint mir ungewöhnlich.

    [autoit]

    WinWaitActive("Software-Lizenzvereinbarung"," END-USER SOFTWARE LICENSE AGREEMENT")
    Send("!a!n")
    WinWaitActive("Installationsart","Das Programm wird mit den am")

    [/autoit]

    In einem Zug: Send("!a!n") (ALT+a+ALT+n) ???

  • Ein Joke

    • BugFix
    • 3. November 2006 um 00:35

    Und ich dachte schon ICH bin böse.... :schild4:

  • Ordner im Explorer öffnen

    • BugFix
    • 2. November 2006 um 17:33

    Vielleicht hilft das:

    Zitat

    Startparameter für den Windows-Explorer

    Mit Hilfe von Startparametern können Sie das Startfenster des Explorers individuell anpassen. Klicken Sie dazu auf "Start | Ausführen" und geben Sie in der Befehlszeile den gewünschten Befehl ein. Die Eingabe bestätigen Sie mit "OK". Wollen Sie den Explorer öfter mit bestimmten Parametern starten, empfiehlt es sich, eine Verknüpfung auf dem Desktop anzulegen und deren "Eigenschaften" zu verändern. Die entscheidende Zeile finden Sie im Register "Verknüpfung" unter der Bezeichnung "Ziel".

    Die Syntax des Explorer-Aufrufs lautet "Explorer [/e[,Verzeichnis]] [/n] [/root,Objekt] [[/select],Unterobjekt]". Wird kein Parameter angegeben, so startet der Explorer mit einem geteilten Fenster im Hauptverzeichnis "C:\". Der Parameter "/e,[Verzeichnis]" startet den Explorer mit einem geteilten Fenster im angegebenen Verzeichnis, "/n" startet ihn in einem ungeteilten Fenster ohne Baumstruktur.

    Der Parameter "/root"Verzeichnis" oder "/root,\\Servername\Verzeichnis" öffnet ein Arbeitsplatz-Fenster für das entsprechende Verzeichnis, wobei das angegebene Verzeichnis die höchste erreichbare Ebene der Verzeichnisstruktur darstellt. Lautet der Aufruf "Explorer /root"" - also ohne Angabe eines Verzeichnisnamens - öffnet sich ein Fenster mit dem Inhalt des Desktops. Der Parameter "/select,[Verzeichnis]" markiert das benannte Verzeichnis in der linken Fensterhälfte des Explorers.

  • Ein Joke

    • BugFix
    • 1. November 2006 um 22:32

    @weedhead
    Ja Danke, genau danach hatte ich auch gesucht - bloß nicht gefunden.
    Werds auch mal ändern und die Datei aktualisieren.

  • Ein Joke

    • BugFix
    • 1. November 2006 um 18:56

    Na, ist der Kollege immer böse zu euch und braucht dringend mal ein Schockerlebnis?
    Sofern er Computermäßig nicht sehr bewandert ist könnt ihr ihm hiermit sicher einen schönen Schreck einjagen.
    Nach 2 Stunden Laufzeit meldet sich das Skript erstmal mit buntem Bildschirmgeflacker.
    Dann folgt eine "Systemwarnung". Egal, wie der User reagiert - jetzt kommt eine GUI die vorgaukelt, dass Systemdateien gelöscht werden. Dazu ist die Datei "sys_dateien.txt" mit in das Scriptverzeichnis zu kopieren. Dort sind 2225 Dateinamen hinterlegt! Der "Löschvorgang" ist mir, denk ich, grafisch recht gut gelungen.
    Es gibt auch keine Möglichkeit, das Script zu beenden (außer natürlich über den Taskmanager).
    Momentan sind alle vorhandenen "Sleep( )" und das "#NoTrayIcon" auskommentiert, damit man es mal eben testen (und beenden) kann.

    Aber denkt dran - es ist zwar ein Scherz, aber er ist ziemlich böse. :rofl_devil:
    Seid also in der Nähe, wenn es losgeht um einem Herzinfarkt zuvorzukommen. :rofl: (Und natürlich um eure Bosheit zu genießen)

    Ach ja:
    Zu Risiken und Nebenwirkungen fragen sie den Codierer ihres Vertrauens.

    Spoiler anzeigen
    [autoit]

    ;~ #NoTrayIcon
    #include <GUIConstants.au3>

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

    $Form1 = GUICreate("Löschen von Systemdateien . . .", 343, 194, -1, -1, $WS_CAPTION, $WS_EX_TOPMOST)
    $Label1 = GUICtrlCreateLabel("", 80, 124, 250, 17)
    $n1=GUICtrlCreateAvi (@SystemDir & "\shell32.dll",162,38,20)
    $Label2 = GUICtrlCreateLabel("", 266, 93, 36, 17, $SS_CENTER)

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

    $red = 0xFF0000
    $yellow = 0xFFFF00
    $green = 0x00FF00
    $black = 0x000000
    $white = 0xFFFFFF
    $blue = 0x000080

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

    ;~ Sleep(2*3600000) ; Zeit bis Start des Jokes (2 Std.)

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

    $Gui = GUICreate("",Default,Default,-1,-1,BitOR($WS_POPUP,$WS_MAXIMIZE))
    For $i = 1 To 5 ; Bildschirmflackern rot-weiß
    GUISetBkColor($red, $Gui)
    GUISetState(@SW_SHOW, $Gui)
    Sleep(100)
    GUISetState(@SW_HIDE, $Gui)
    GUISetBkColor($white,$Gui)
    Sleep(80)
    GUISetState(@SW_SHOW, $Gui)
    Sleep(120)
    GUISetState(@SW_HIDE, $Gui)
    Next

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

    ;~ Sleep(15000)

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

    For $i = 1 To 5 ; Bildschirmflackern gelb-schwarz
    GUISetBkColor($yellow, $Gui)
    GUISetState(@SW_SHOW, $Gui)
    Sleep(100)
    GUISetState(@SW_HIDE, $Gui)
    GUISetBkColor($black,$Gui)
    Sleep(80)
    GUISetState(@SW_SHOW, $Gui)
    Sleep(120)
    GUISetState(@SW_HIDE, $Gui)
    Next

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

    ;~ Sleep(15000)

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

    For $i = 1 To 5 ; Bildschirmflackern grün-blau
    GUISetBkColor($green, $Gui)
    GUISetState(@SW_SHOW, $Gui)
    Sleep(100)
    GUISetState(@SW_HIDE, $Gui)
    GUISetBkColor($blue,$Gui)
    Sleep(80)
    GUISetState(@SW_SHOW, $Gui)
    Sleep(120)
    GUISetState(@SW_HIDE, $Gui)
    Next

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

    ;~ Sleep(20000)

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

    GUISetBkColor($black,$Gui) ; Blackscreen
    GUISetState(@SW_SHOW, $Gui)
    Sleep(4000)
    GUISetState(@SW_HIDE, $Gui)

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

    ;~ Sleep(10000)

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

    MsgBox(17, 'Wichtige Systemwarnung !', "Achtung!" & @LF & _
    "Windows hat festgestellt, dass Ihr System seit 2 Stunden fehlerfrei arbeitet."& @LF & _
    "Das ist ungewöhnlich für ein Windowssystem. Um etwaigen Hardwarekonflikten"& @LF & _
    "vorzubeugen, wird empfohlen, Windows neu zu installieren."& @LF & _
    "Die Systemdateien werden jetzt gelöscht.")

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

    GUISetState(@SW_SHOW,$Form1) ; Simulation Löschvorgang
    $i = 0
    $sys = FileOpen("sys_dateien.txt", 0)
    GUICtrlSetState ($n1, 1)
    While 1
    $i += 1
    $line = FileReadLine($sys, $i)
    If @error = -1 Then ExitLoop
    GUICtrlSetData($Label1, "gelöscht wird: " & StringUpper($line)) ; 2225 Dateinamen *0,08 sec Sleep = 178 sec mind.
    GUICtrlSetData($Label2, "( " & $i & " )")
    Sleep(80)
    Wend
    FileClose($sys)

    [/autoit]

    Dateien

    sys_dateien.txt 28,22 kB – 1.157 Downloads joke.au3 2,37 kB – 390 Downloads

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™