Routine erstellen zum Löschen, erstellen usw.

  • Hallo ich bin in diesen Bereich im Moment totaler Anfänger. Aber ich versuche trotzdem mal zu fragen.

    Ich will gerne eine routine erstellen, die folgendes kann.

    Als erstes erscheint eine Messagebox, mit einen mehrzeiligen Hinweisetext.
    Wenn man anschließend auf den Button Ok klickt, soll folgendes passieren.

    Es werden sämtliche Ordner mit allen darin enthalten Datein und Unterordner gelöscht.
    Anschließend sollen neue Ordner erstellt werden.
    Danach soll eine Hinweise.txt erstellt werden, die einen gewissen Inhalt hat. Diese soll dann in alle neu erstellten Ordner erscheinen.

    Danach soll wieder eine Messagebox erscheinen, wo ein Mehrzeiliger Text erscheint.
    Kann man in der Messagebox auch grafiken anzeigen lassen?

    Ich hatte erst alles über eine batch-datei gemacht. Jetzt wurde aber gesagt, das es mit autoit besser ist, blos weiss ich echt nicht wie am besten anfange.

    Danke schon mal im voraus für die hilfe

  • Also erst mal [Blockierte Grafik: http://img125.echo.cx/img125/8038/01welcome7jb.gif]
    Ach ja das steht alles in der Hilfe, aber da ich deswegen eigentlich gar nichts sagen dürfte( ich hatte am anfang auch kp) beschreibe ich es dir noch mal:

    [autoit]

    ;Für die MsgBox nimmst du folgendes (Syntax: MsgBox(flag, "title", "text"[, timeout])
    ;Aso bei dir:
    $M = MsgBox(1, "Dein Titel", "Der Text in Zeile1" & @CRLF & "und der in Zeile 2")
    ;Die Variable $M enthält jetzt das "Return Value" also den Rückgabewert. Diesen kannst du aus der Hilfe entnehmen. Dieser wird jetzt abgefragt (Bei OK ist er 1):
    If $M = 1 Then
    ;Den Satz habe ich nicht verstanden, aber hier kommt das rein was du dann machen willst
    EndIf
    ;Dann die 2.MsgBox, was du mit Grafiken meinst weiß ich nicht, wenn du dieses Warndreieck und so meinst, dann geht das mit der Flag --> Hilfe lesen
    MsgBox(0, "Dein Titel", "Der Text in Zeile1" & @CRLF & "und der in Zeile 2")

    [/autoit]

    So das war's jetzt.
    ps: Ich habe auch in Batch gescriptet bevor ich auf autoit umgestiegen bin, aber AutoIt hat bestimmt 1000x mehr möglichkeiten ;)

    Projekte: Keine größeren (und fertigen)
    Gegen Internetzensur:
    https://epetitionen.bundestag.de/index.php?acti…s;petition=3860
    (Zeichnungsfrist abgelaufen)
    __________________________________________________________________________________________________________________________________
    Dieser Beitrag wurde bereits 264 mal editiert, zuletzt von »Fast2« (30. Februar 2009, 12:99)

  • Ok, ich danke dir für die Hilfe. Ich hatte auch schon etwas probiert. Bis jetzt hatte ich hinbekommen, das mit der Messagebox ohne Grafik und das Löschen von Verzeichnissen und sämtliche Inhalt sowie das erstellen.

    Wo ich noch werkel, das er am ende eine Hinweis.txt erstellt

    Das mit dem Flag will leider nicht klappen. da kommt immer error bei ausführen der exe

    Einmal editiert, zuletzt von blackeagle1075 (12. Januar 2008 um 01:52)

  • Also die Hinweistext machst du am besten mit FileWriteLine und wenn ich das richtig verstanden habe brauchst du auch eine schleife oder?
    Also würd ich mir mal in der Hilfe folgendes durchlesen:
    If Else bzw. Select Case abfragen
    allg. schleifen: for, while usw
    die Befehle: FileWrite, FilteWriteLine, FileDelete, FileCopy, DirCreate, DirRemove, MsgBox
    sowie die Macros: @CR, @LF
    achja und das wichtigste allg. Variablen $var und wie man sie definiert $var = "Beispiel"
    Wie oft soll denn das ganze hintereinander durchlaufen ?
    Wenn du gar nicht weiterkommst helfe ich dir natürlich bei deinem Script aber mit ein bisschen Englisch schaffst du das auch mit der Hilfe ;)

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Als das mit den Text klappt es auch. Ich habe eine Anweisung geschrieben, das eine TXT Datei erzeugt werden soll. Sollte sie schon vorhanden sein, wird sie vorher gelöscht, sonst war steht dann alles doppelt und dreifach in der Datei. Anschließend wird sie kopiert in die entsprechenden Verzeichnisse.

    Was jetzt mir noch fehlt, das bei der Messagebox am Anfang und Ende ein Acktungszeichen oder ähnliches mit angezeigt wird. Das bekomme ich nicht hin. Ich weiß auch nicht ob es Möglich ist, in der Message eigene Grafiken einzubinden, wie z.b. Firmen Logo usw. Dazu habe ich in der Hilfe nichts gefunden.

    Meine Anwisung schaut im Moment so aus.

    [autoit]


    ; Erzeuge Messagebox
    MsgBox( 0, "Bereinigungstool", "Bevor das Update beginnt werden zuerst alle relevanten Ordner bereinigt." & @CRLF & "Klicken Sie auf OK um fortzufahren" & @CRLF & "" & @CRLF & "Hier der englische Text")

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

    ; Löschen und bereinigen der relevanten Verzeichnisse
    DirRemove(".\Models" ,1)
    DirRemove(".\textures" ,1)

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

    ; Erstellen der relevanten Hauptverzeichnisse Verzeichnisse
    DirCreate(".\Models")
    DirCreate(".\textures")

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

    $file = FileOpen("Hinweis.txt", 2)

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

    ; Erzeugen Hinweis.txt
    If $file = -1 Then
    MsgBox(2, "Error", "Unable to open file.")
    Exit
    EndIf

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

    FileWrite($file, "Line1")
    FileWrite($file, "Still Line1" & @CRLF)
    FileWrite($file, "Line2")

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

    FileClose($file)

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

    ; Kopieren den Hinweis.txt
    FileCopy(".\Hinweis.txt", ".\Models\")
    FileCopy(".\Hinweis.txt", ".\textures\")

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

    ; Erzeuge Messagebox
    MsgBox(0, "Bereinigungstool", "Es wurden alle relevanten Ordner erfolgreich bereinigt." & @CRLF & "Klicken Sie auf OK um mit den Update fortzufahren"& @CRLF & "" & @CRLF & "Hier der englische Text")

    [/autoit]
    • Offizieller Beitrag

    Bei der MsgBox gibt es folgende Möglichkeiten (aus der Hilfedatei):

    0 (No icon) 0x0
    16 Stop-sign icon 0x10
    32 Question-mark icon 0x20
    48 Exclamation-point icon 0x30
    64 Information-sign icon consisting of an 'i' in a circle 0x40

    Für ein Ausrufezeichen musst Du also 48 eingeben:

    [autoit]

    MsgBox(48, 'Titel', 'Text')

    [/autoit]

    Grafiken sind bei der MsgBox nicht möglich. Dazu müßtest Du Dir eine eigene GUI erstellen.

  • ich danke dir. klappt alles wunderbar. Bei einer Grafikanzeige, hatte ich vorher ans so ein Splashscrenn gedacht, der für paar Sekunden angezeigt wird. dann kommt erst das Messagefenster.

    Muss ich was beim Compiler beachten, beim erstellen der exe-Datei? Ich habe bis jetzt immer Unicode gelasen, in der Hoffnung, das es auf sämtlichen Windowssystemen läuft, ab XP aufwärst.

  • Das kann auch gleichzeitug angezeigt werden. Die MessageBox bruacht nur TopMost (262144)
    SplashImageOn("The Splash","C:\Windows\Präriewind.bmp")
    MsgBox(16+262144,"Titel","Text")
    SplashOff()

  • oh das ist gut, nur zieht es be mir mein bild ganz schön in die länge. wenn ich vesuche die größe festzlegen, kommt fehler :(

    edit_ ah jetzt geht es. wie mache ich das am besten, das sich bild und message übereinander befinden? wenn ich das mit x und y probiere, bekomme ich das zawr schön übereiander irgendwann. das schaut aber bei meiner bildschirmauflösung da blos so aus. weil er, wenn ich richtig verstehe, bei x und y immer vom rand ausgeht. da ist es ja bei anderen auflösungen wieder total verschoben

    2 Mal editiert, zuletzt von blackeagle1075 (12. Januar 2008 um 20:43)

  • Wenn du keine x-Werte angibst, müsste doch alles zentriert werden. Oder wie willst du es ?
    So?
    ##################
    | |
    |BILD |
    | |
    ###################
    -----------------------------
    Message
    -----------------------------

    Dann $x = Default ; Zentriert
    $yimage = @DeskTopHeught/2- [Hier wie viel über der Mitte der Anfang sein soll]
    $ymsg = $yimage + [BildHöhe]

    //Edit: Mach am besten ne eigene GUI, Msg Box hat ja keine X,y

  • ohje wie muss das da ausschauen? bei mir schaut es bis jetzt so aus

    [autoit]

    ; Erzeuge Eingangsbildschirm
    $destination = @TempDir & ".\mwzander_logo.jpg"
    FileInstall(".\mwzander_logo.jpg", $destination) ;source must be literal string

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

    SplashImageOn("Bereinigungstool", $destination, 350, 200,460,150)
    MsgBox( 48+262144, "Bereinigungstool wird gestartet", "Bevor das Update beginnt werden zuerst alle relevanten Verzeichnisse " & @CRLF & "bereinigt. Klicken Sie auf OK um fortzufahren" & @CRLF & "" & @CRLF & "Hier der englische Text")
    SplashOff()

    [/autoit]

    edit: die messagebox kann ja mittig sein. nur das bild soll darüber

    2 Mal editiert, zuletzt von blackeagle1075 (12. Januar 2008 um 21:20)

  • Hi blackeagle1075 ,

    auch das könnte ein Startfenster mit Logo sein. ;)

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    $gui = GUICreate("Test",300,350,-1,-1, BitOR($WS_SIZEBOX, $WS_SYSMENU))
    GuiCtrlCreateLabel("Progress:", 65, 230)
    $progress = GuiCtrlCreateProgress(65, 250, 150, 20)
    GUICtrlCreatePic("setup.bmp",65,50, 169,150)
    GUISetState ()

    For $i = 0 To 100 Step 10
    GuiCtrlSetData($progress, $i)
    Sleep(500)
    Next
    GUIDelete($gui)
    ;~ Send("{ALT down}{F4}") ; wozu?
    ;Run('C:\test.exe');==> das Prog Seiner wahl!!

    [/autoit]

    Schönes WE und Herzlich Willkommen
    weiterhin viel Erfolg !

    Man liest sich...
    Euer Ritzelrocker04

  • hi, danke dir für das script, werde ich mal bei mir anpassen, mit allen drumm und dran.

    hier bin ich ja durch zufall reingeschlittert. ich wollte meine sachen erst alles über ein batch datei machen, mit dos befehlen. das sah aber nicht so schön aus. da hat mir jemand das stichwort "autoit" gegeben und seit freitag nacht versuche ich mich daran.

    Mein stand ist jetzt so, das 200px mittig von oben ein splash erscheint und darunter eine messagebox.

    wenn man dort auf ok klickt, werden ordner gelöscht und erstellt sowie datein gelöscht und erstellt. wenn das fertig ist, kommt noch eine messagebox, wo darin steht, das alles erfolgreich war.

    die erstellten datein haben einen fest definierten inhalt.

    Wenn alles fertig ist, verschwindet auch der splashscreen.