Eigene Funktionen

  • Ich hab mal angefangen eigene Funktionen zu schreiben.

    FTP:

    Spoiler anzeigen


    Mail:

    Spoiler anzeigen

    Edit Gtaspider: "und vielen danke an GtaSpider" eingefügt! ;)

    3 Mal editiert, zuletzt von DJMANU (4. September 2006 um 20:39)

  • Ich hab die zwei Funktionen heute morgen geschrieben und da wusste ich nicht das die schon geschrieben wurden

    • Offizieller Beitrag

    Hallo!

    Das glaube ich dir nicht!
    Deine Funktion:

    Spoiler anzeigen


    Die version von Wouter:

    Spoiler anzeigen

    Ich finde die haben eine sehr extreme änlichkeit!

    Und die Mail funktion hast du einfach einbisschen abgespackt!

    Wenn du schon was "böses" machst dann steh zumindestens auch dazu!

    Mfg Spider

  • Ich möchte jetzt mal eine komplett eigene Funktion schreiben, weiß einer von euch, über was man eine Funktion schreiben kann. Am Ende soll es vielleicht eine UDF werden

  • hi,

    ja, einfach mal Beispiele ansehen, verstehen lernen wie es funktioniert und dann selber versuchen etwas selber "eigenes" geistigen Eigentum zu produzieren - selbstverständlich auch ab und zu mal nachfragen bei kompetente Leute wenn`s mal nicht weiter geht.

    Mfg
    trallala

    • Offizieller Beitrag

    Ich fand immer am Besten zum Üben das Umsetzen mathematischer Aufgaben.
    Selbst wenn diese math. Funktionen schon in AutoIt enthalten sind, kann man sie zu Testzwecken auch mal selber neu erfinden.
    Sehr schön zum Anfang finde ich z.B.: "n!" oder "Quersumme von n"
    Wenn du es dann etwas härter magst: Primzahlen bis "n"
    Als schöne Übung für eine GUI: Lotto 6 aus 49

    Viel Spaß!

  • Ich hab mal angefangen eine eigene Funktion zu schreiben:

    Es handelt sich um die Datei makecab.exe im Verzeichnis "C:Windowssytem32"

    Spoiler anzeigen
    [autoit]


    #cs ===============================================================================

    Function Name: _cab()
    Description: Erstellt ein CAB-Archiv
    Parameter(s): $sourcefiles - Quelldateien
    $dest - Name des CAB-Archivs
    Requirement(s): make.cab
    Return Value(s): 0 = CAB-Archiv erfolgreich erstellt
    1 = Keine Dateien gefunden
    2 = CAB-Archiv konnte nicht erstellt werden
    3 = Quelldateien konnten nicht gelöscht werden
    Author(s): Manuel Kübler <[email='mk-software@gmx.de'][/email]>

    #ce ===============================================================================

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

    #include <File.au3>

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

    Func _cab($sourcefiles, $dest)

    #cs
    Befehle:
    $sourcefiles = source
    $dest = destination
    Funktion:
    Erstelle CAB-Datei und verschiebe Dateien hinein
    #ce

    ; Befehl
    $befehl = " " & $sourcefiles & " " & $dest

    ; Programm
    $action = RunWait(@SystemDir & "makecab.exe" & $befehl)

    ;~ If FileExists($sourcefiles) Then
    ;~ Return "3"
    ;~ Else
    ;~ Return $action
    ;~ EndIf

    EndFunc ;==>_cab($sourcefiles, $dest)
    ; ----------------------------------------------------------------------------

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

    Func _cab_error($returncode)

    #cs
    Return Code:
    0 = CAB-Archiv erfolgreich erstellt
    1 = Keine Dateien gefunden
    2 = CAB-Archiv konnte nicht erstellt werden
    3 = Quelldateien konnten nicht gelöscht werden
    #ce

    Select
    Case $returncode = 0
    Return _FileWriteLog(@ScriptDir & "log.txt", "ZIP erfolgreich")
    Case $returncode = 1
    Return _FileWriteLog(@ScriptDir & "log.txt", "Hinweis: keine Daten gefunden")
    Case $returncode = 2
    Return _FileWriteLog(@ScriptDir & "log.txt", "Fehler: Zipdatei konnte nicht erstellt werden")
    Case $returncode = 3
    Return _FileWriteLog(@scriptDir & "log.txt", "Fehler: Quelldateien konnten nicht geloescht werden")
    Case Else
    Return _FileWriteLog(@ScriptDir & "log.txt", "Fehler: Zip-Error " & $returncode)
    EndSelect

    EndFunc ;==>_cab_error($returncode)

    [/autoit]

    Nun möchte ich das am Ende von _cab die Func _cab_error ausgeführt wird. Wie geht das

    • Offizieller Beitrag
    [autoit]

    ...
    ;~ Return $action
    ;~ EndIf

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

    Return _cab_error($action)

    EndFunc ;==>_cab($sourcefiles, $dest)
    ...

    [/autoit]

    Das ist aber keine gute Lösung, weil du den Return code wieder durch die erste Funktion durcschleifen musst. Lieber gleich dort den Select-Teil machen.

    peethebee

  • Danke. Werd es mal ausprobieren.

    Es funktioniert.

    Nun möchte ich meine zweite Funktion schreiben, leider funktioniert sie noch nicht richtig

    Spoiler anzeigen
    [autoit]


    #cs ===============================================================================

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

    Function Name: _extract()
    Description: Erstellt eine selbstextrahierende Datei
    Parameter(s): $sourcefiles - Quelldatei (*.cab)
    $dest - Name der selbstextrahierenden Datei
    Requirement(s): extract32.exe
    Return Value(s): 0 = Selbstextrahierende Datei erfolgreich erstellt
    1 = Keine Dateien gefunden
    2 = Selbstextrahierende Datei konnte nicht erstellt werden
    3 = Quelldateien konnten nicht gelöscht werden
    Author(s): Manuel Kübler <[email='mk-software@gmx.de'][/email]>
    Copyrigt: (c) Manuel Kübler 2006

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

    #ce ===============================================================================

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

    #include <File.au3>

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

    Func _extract($cabfile, $dest)

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

    #cs
    Befehle:
    $file = source
    $dest = destination
    Funktion:
    Erstelle eine selbstextrahierende Datei
    #ce

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

    ; Befehl
    $befehl = "+" & $cabfile & " " & $dest

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

    ; Programm
    $action = RunWait("copy /b " & @ScriptDir & "\extract32.exe" & $befehl)

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

    Return _extract_error($action)

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

    EndFunc ;==>_extract($cabfile, $dest)
    ; ----------------------------------------------------------------------------

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

    Func _extract_error($returncode)

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

    #cs
    Return Code:
    0 = Selbstextrahierende Datei erfolgreich erstellt
    1 = Keine Dateien gefunden
    2 = Selbstextrahierende Datei konnte nicht erstellt werden
    3 = Quelldateien konnten nicht gelöscht werden
    #ce

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

    Select
    Case $returncode = 0
    Return _FileWriteLog(@ScriptDir & "\log.txt", "Selbstextrahierende Datei erfolgreich erstellt";)
    Case $returncode = 1
    Return _FileWriteLog(@ScriptDir & "\log.txt", "Hinweis: Keine Dateien gefunden";)
    Case $returncode = 2
    Return _FileWriteLog(@ScriptDir & "\log.txt", "Fehler: Selbstextrahierende Datei konnte nicht erstellt werden";)
    Case $returncode = 3
    Return _FileWriteLog(@scriptDir & "\log.txt", "Fehler: Quelldateien konnten nicht geloescht werden";)
    Case Else
    Return _FileWriteLog(@ScriptDir & "\log.txt", "Fehler: Extract-Error " & $returncode)
    EndSelect

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

    EndFunc ;==>_extract_error($returncode)

    [/autoit]
  • Werd es mal mit _RunDOS ausprobieren.

    Hab noch zwei eigene Funktionen geschrieben.

    1. Kompiliert eine AU3-Datei in eine EXE-Datei

    Spoiler anzeigen
    [autoit]


    ;===============================================================================
    ;
    ; Function Name: _decompile($infile, $outfile, $passphrase)
    ; Description:: Dekompiliert eine EXE-datei in eine AU3-Datei
    ; Parameter(s): $infile = AU3-Datei
    ; $outfile = EXE-Datei
    ; $iconfile = Icon-Datei
    ; $passphrase = Passwort
    ; Requirement(s): Exe2Aut.exe
    ; Return Value(s):
    ; Author(s): Manuel Kübler <[email='mk-software@gmx.de'][/email]
    ;
    ;===============================================================================
    ;
    Func _compile($infile, $outfile, $iconfile, $passphrase)

    #cs (Quelle: Aut2Exe - Command Line Parameters)
    Aut2Exe.exe /in <infile.au3> [/out <outfile.exe>] [/icon <iconfile.ico>] [/comp 0-4] [/nodecompile] [/pass <passphrase>]
    #ce

    $befehl = ' /in "' & $infile & '" /out "' & $outfile & '" /icon "' & $iconfile & '" /pass "' & $passphrase & '"'

    RunWait(@ScriptDir & '\Aut2Exe.exe' & $befehl)

    EndFunc ;==>_compile

    [/autoit]


    2. Dekompiliert eine EXE-Datei in eine AU3-Datei

    Spoiler anzeigen
    [autoit]


    ;===============================================================================
    ;
    ; Function Name: _decompile($infile, $outfile, $passphrase)
    ; Description:: Dekompiliert eine EXE-datei in eine AU3-Datei
    ; Parameter(s): $infile = EXE-Datei
    ; $outfile = AU3-Datei
    ; $passphrase = Passwort
    ; Requirement(s): Exe2Aut.exe
    ; Return Value(s):
    ; Author(s): Manuel Kübler <[email='mk-software@gmx.de'][/email]
    ;
    ;===============================================================================
    ;
    Func _decompile($infile, $outfile, $passphrase)

    #cs (Quelle: Exe2Aut - Command Line Parameters)
    Exe2Aut.exe /in <infile.exe> [/out <outfile.au3>] [/pass <passphrase>]
    #ce

    $befehl = ' /in "' & $infile & '" /out "' & $outfile & '"" /pass "' & $passphrase & '"'

    RunWait(@ScriptDir & '\Exe2Aut.exe' & $befehl)

    EndFunc ;==>_decompile

    [/autoit]

    Einmal editiert, zuletzt von DJMANU (17. September 2006 um 17:19)