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

Beiträge von Schnuffel

  • Installationsorder 32 und 64Bit, Error Then

    • Schnuffel
    • 12. April 2009 um 22:25

    prüfe das doch einfach mit FileExist

    Spoiler anzeigen
    [autoit]

    ;Installationsordner für 32Bit-Systeme (Windows 2000, XP und Vista (32-Bit))
    $InstallDirX86 = @ProgramFilesDir & "\XXXX\XXXX
    ; Installationsordner für 64Bit-Systeme (XP und Vista (64-Bit))
    $InstallDirX64 = @HomeDrive & "\Programme (x86)\XXXX\XXXX

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

    If @OSArch = "X86" Then
    If Not FileExists($InstallDirX86) Then $InstallDirX86 = $DefaultInstallDirX86
    $InstallDirX86 = $InstallDir
    ElseIf @OSArch = "X64" Then
    If Not FileExists($InstallDirX64) Then $InstallDirX64 = $DefaultInstallDirX64
    $InstallDirX64 = $InstallDir
    EndIf

    [/autoit]
  • AnyGUI.au3

    • Schnuffel
    • 12. April 2009 um 20:11

    jetzt gibt es eine Version, die auch unter 3.3.0.0 funktioniert inkl. Beispiele.

    Original Post

  • animierte Gif's in einer Gui

    • Schnuffel
    • 11. April 2009 um 22:28

    hab's bisher nur unter XP getestet.
    Werd ich mal ausprobieren unter Vista.

  • animierte Gif's in einer Gui

    • Schnuffel
    • 11. April 2009 um 21:40

    Hallo zusammen,

    hab ich in einem engl. Forum gefunden von wolf9228. Hier der Link
    Ich habe nur den Aufruf ein wenig angepasst und die Funktionen ausgelagert.

    Wer's brauchen kann, bitte schön...
    Aufruf:

    [autoit]

    $gif1 = _animgif("alladdin.gif",0,$my_Gui, 0, 10)

    [/autoit]


    Alle notwendigen Dateien in der zip, inkl. gif's als Demo

  • Email senden mit _InetSmtpMailCom via Console / Gui

    • Schnuffel
    • 11. April 2009 um 20:32

    Hallo zusammen,

    ich hab mir mal gedacht, da es doch ab und an Fragen gibt zum Versenden von Emails, dass ich die Vorlage von Jos aus den engl. Forum (Link) mal ein wenig ausbaue.
    Ich hab mal eine Möglichkeit eingebaut Emails via Dos-Console zu versenden sowie eine Gui Option eingebaut.
    Ist bestimmt verbesserungsfähig, aber es funktioniert soweit.
    Inklusive Dateianhänge und Verschlüsselung...
    Hier die sende_email.au3:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=sende_email.exe
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ;Konstanten
    Global Const $GUI_EVENT_CLOSE = -3
    Global Const $GUI_CHECKED = 1
    Global Const $GUI_ENABLE = 64
    Global Const $GUI_DISABLE = 128
    Global $anhang_new, $flag, $read_txt, $file, $von, $wichtig, $ssl, $Cmd[15]
    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
    Switch $CmdLine[0]
    Case 0
    gui()
    Case 1
    Switch $CmdLine[1]
    Case "/?", "?", "-?", "help", "-help", "/help"
    Exit mbparam(0)
    Case "gui", "/gui", "-gui"
    gui()
    EndSwitch
    Case 2 To 4
    Exit mbparam(2)
    Case 5 To 14
    For $i = 1 To 5
    If $CmdLine[$i] = "" Then Exit mbparam(1)
    Next
    Case 15 To 1000
    Exit mbparam(3)
    Case Else
    Exit mbparam(1)
    EndSwitch

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

    For $i = 1 To $CmdLine[0]
    $Cmd[$i] = $CmdLine[$i]
    Next
    For $i = $CmdLine[0]+1 To 14
    $Cmd[$i] = ""
    Next

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

    If FileExists(_PathFull($Cmd[5])) Then
    $read_txt = FileOpen($Cmd[5],0)
    $Cmd[5] = FileRead($read_txt)
    FileClose($read_txt)
    EndIf

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

    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
    $rc = _INetSmtpMailCom($Cmd[1], $Cmd[2], $Cmd[3], $Cmd[4], $Cmd[5], $Cmd[6], $Cmd[7], $Cmd[8], $Cmd[9], $Cmd[10], $Cmd[11], $Cmd[12], $Cmd[13], $Cmd[14])
    If @error Then
    ConsoleWrite("Fehler beim Versenden der Nachricht"&@CRLF&"Fehlercode: " & @error & " Beschreibung: " & $rc & @CRLF)
    SetError(1)
    Else
    ConsoleWrite(@CRLF&"Die Nachricht an "&$Cmd[2]&" wurde erfolgreich versendet." & @CRLF)
    SetError(0)
    EndIf
    Exit

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

    #cs
    _InetSmtpMailCom ist ein Script von "Jos" aus dem engl. Forum von AutoIt:
    http://www.autoitscript.com/forum/index.ph…InetSmtpMailCom
    #ce
    Func _INetSmtpMailCom($s_FromAddress, $s_ToAddress, $s_SmtpServer, $s_Subject, $as_Body, $s_FromName = "", $s_Username = "", $s_Password = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance = "Normal", $IPPort = 25, $ssl = 0)
    Local $objEmail = ObjCreate("CDO.Message")
    $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
    $objEmail.To = $s_ToAddress
    Local $i_Error = 0
    Local $i_Error_desciption = ""
    If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
    If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress
    $objEmail.Subject = $s_Subject
    If StringLeft($as_Body,6) = "<html>" And StringInStr($as_Body, "</html>") Then
    $objEmail.HTMLBody = $as_Body
    Else
    $objEmail.Textbody = $as_Body & @CRLF
    EndIf
    If $s_AttachFiles <> "" Then
    Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
    For $x = 1 To $S_Files2Attach[0]
    $S_Files2Attach[$x] = StringReplace($S_Files2Attach[$x],'"','')
    If FileExists($S_Files2Attach[$x]) Then
    $objEmail.AddAttachment ($S_Files2Attach[$x])
    If @error = 0 Then ConsoleWrite("Datei erfolgreich angehaengt: "&$S_Files2Attach[$x] & @CRLF)
    Else
    ConsoleWrite('!> Dateianhang wurde nicht gefunden: ' & $S_Files2Attach[$x] & @LF)
    SetError(1)
    Return 0
    EndIf
    Next
    EndIf
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
    If Number($IPPort) = 0 then $IPPort = 25
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
    ;Authenticated SMTP
    If $s_Username <> "" Then
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
    EndIf
    If $ssl Then
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    EndIf
    ;Update settings
    $objEmail.Configuration.Fields.Update
    ; Set Email Importance
    Switch $s_Importance
    Case "Hoch", "hoch"
    $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High"
    Case "Normal", "normal"
    $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Normal"
    Case "Niedrig", "niedrig"
    $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Low"
    EndSwitch
    $objEmail.Fields.Update
    ; Sent the Message
    $objEmail.Send
    If @error Then
    SetError(2)
    Return $oMyRet[1]
    EndIf
    $objEmail=""
    EndFunc ;==>_INetSmtpMailCom
    ;
    Func gui()
    Global $gui[22]
    $wichtig = "Normal"
    $ssl = 0
    $gui[0] = GUICreate("sende Email", 700, 550, 193, 115)
    GUICtrlCreateLabel("Von", 8, 10, 23, 17)
    GUICtrlCreateLabel("An", 8, 35, 17, 17)
    GUICtrlCreateLabel("[Cc]", 8, 60, 18, 17)
    GUICtrlCreateLabel("[Bcc]", 8, 85, 25, 15)
    GUICtrlCreateLabel("[Absender-Name]", 340, 10, 90, 17)
    GUICtrlCreateLabel("Smtp-Server", 340, 35, 62, 17)
    GUICtrlCreateLabel("[Anmeldename]", 340, 60, 80, 17)
    GUICtrlCreateLabel("[Passwort]", 340, 85, 55, 17)
    GUICtrlCreateLabel("[Priorität]", 8, 114, 57, 17)
    GUICtrlCreateLabel("[Ip-Port]", 340, 114, 45, 17)
    GUICtrlCreateLabel("[Ssl]", 507, 114, 24, 17)
    GUICtrlCreateLabel("Betreff", 8, 141, 35, 17)
    GUICtrlSetTip(-1,"Betreff:"&@CRLF&"Tragen Sie hier den Betreff Ihrer Email ein")
    GUICtrlCreateLabel("Nachricht", 8, 181, 50, 17)
    GUICtrlSetTip(-1,"Nachricht:"&@CRLF&"hier tragen Sie den Inhalt Ihrer Email ein"&@CRLF&"wenn der Text HTML-formatiert ist, dann wird dieser als HTML-Email versendet"&@CRLF&"dazu muss der Inhalt von '<html>...</html>' eingeschlossen sein."&@CRLF&"eine logische Prüfung der HTML-Konformität erfolgt nicht!!!")
    GUICtrlCreateLabel("[Anhang]", 8, 465, 70, 17)

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

    $gui[1] = GUICtrlCreateInput("", 66, 6, 250, 20); Von
    GUICtrlSetTip(-1,"Von:"&@CRLF&"Geben Sie hier Ihre Email-Adresse an")
    $gui[2] = GUICtrlCreateInput("", 66, 33, 250, 20); An
    GUICtrlSetTip(-1,"An:"&@CRLF&"Geben Sie hier die Email-Adresse des Empfängers an")
    $gui[3] = GUICtrlCreateInput("", 66, 58, 250, 20); CC
    GUICtrlSetTip(-1,"CC:"&@CRLF&"Geben Sie hier die Email-Adresse/n der CC-Empfänger an"&@CRLF&"mehrere Empfänger müssen mit ';' getrennt werden")
    $gui[4] = GUICtrlCreateInput("", 66, 83, 250, 20); BCC
    GUICtrlSetTip(-1,"BCC:"&@CRLF&"Geben Sie hier die Email-Adresse/n der BCC-Empfänger an"&@CRLF&"mehrere Empfänger müssen mit ';' getrennt werden")
    $gui[5] = GUICtrlCreateInput("", 434, 7, 250, 20); Absender-Name
    GUICtrlSetTip(-1,"Absendername:"&@CRLF&"Geben Sie hier den anzuzeigenden Namen an"&@CRLF&"i.d.R. wird dies Ihr Vor- und Nachname sein")
    $gui[6] = GUICtrlCreateInput("", 434, 34, 250, 20); Smtp-Server
    GUICtrlSetTip(-1,"Smtp-Server:"&@CRLF&"Geben Sie hier den Smtp-Server Ihres Email-Postfaches ein")
    $gui[7] = GUICtrlCreateInput("", 434, 59, 250, 20); Anmeldename
    GUICtrlSetTip(-1,"Anmeldename:"&@CRLF&"Geben Sie hier den Benutzernamen Ihres Email-Postfaches ein")
    $gui[8] = GUICtrlCreateInput("", 434, 84, 250, 20,0x0020); Passwort
    GUICtrlSetTip(-1,"Passwort:"&@CRLF&"Geben Sie hier das Passwort Ihres Email-Postfaches ein")

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

    GUIStartGroup()
    $gui[9] = GUICtrlCreateRadio("Niedrig", 83, 113, 59, 17); Wichtigkeit
    GUICtrlSetTip(-1,"Priorität:"&@CRLF&"hier stellen Sie die Priorität auf 'Niedrig'")
    $gui[10] = GUICtrlCreateRadio("Normal", 170, 113, 53, 17); Wichtigkeit
    GUICtrlSetTip(-1,"Priorität:"&@CRLF&"hier stellen Sie die Priorität auf 'Normal'")
    $gui[11] = GUICtrlCreateRadio("Hoch", 256, 113, 49, 17); Wichtigkeit
    GUICtrlSetTip(-1,"Priorität:"&@CRLF&"hier stellen Sie die Priorität auf 'Hoch'")
    GUIStartGroup()
    $gui[12] = GUICtrlCreateInput("25", 434, 112, 41, 20); IP-Port
    GUICtrlSetTip(-1,"Ip-Port:"&@CRLF&"hier können Sie einen Port zum Versenden der Email angeben"&@CRLF&"Für eine SSL-Verbindung müssen Sie möglicherweise einen anderen Port eintragen"&@CRLF&@CRLF&"Standard Ip-Port ist 25"&@CRLF&"Standard Ip-Port SSL ist 465")
    GUIStartGroup()
    $gui[13] = GUICtrlCreateRadio("aktiviert", 538, 113, 65, 17); SSL
    GUICtrlSetTip(-1,"SSL-Verschlüsselung:"&@CRLF&"hier aktivieren sie die SSL-Verschlüsselung"&@CRLF&"beachten Sie, dass nicht jeder Provider SSL-Verschlüsselung unterstützt."&@CRLF&@CRLF&"Standard Ip-Port ist 465.")
    $gui[14] = GUICtrlCreateRadio("deaktiviert", 613, 113, 73, 17); SSL
    GUIStartGroup()
    $gui[15] = GUICtrlCreateInput("", 66, 138, 617, 20); Betreff

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

    $gui[16] = GUICtrlCreateEdit("", 66, 178, 617, 270); Nachricht
    GUICtrlSetTip(-1,"Nachricht:"&@CRLF&"Sie können in dieses Feld auch den Pfad zu einer Datei eintragen,"&@CRLF&"dessen Inhalt als body erscheinen soll.")
    $gui[17] = GUICtrlCreateInput("", 66, 462, 467, 20); Dateianhang
    GUICtrlSetTip(-1,"Anhang auswählen:"&@CRLF&"hier können Sie eine oder mehrere Dateien auswählen, die als Anhang mit versendet werden"&@CRLF&"mit jeder erneuten Auswahl wird die vorherige gelöscht"&@CRLF&"es können mit Hilfe der 'Strg'- und 'Shift'-Taste mehrere Dateien ausgewählt werden" )
    $gui[18] = GUICtrlCreateButton("Anhang auswählen ...",564,462,120,20)
    GUICtrlSetTip(-1,"Anhang auswählen:"&@CRLF&"hier können Sie eine oder mehrere Dateien auswählen, die als Anhang mit versendet werden"&@CRLF&"mit jeder erneuten Auswahl wird die vorherige gelöscht"&@CRLF&"es können mit Hilfe der 'Strg'- und 'Shift'-Taste mehrere Dateien ausgewählt werden" )
    $gui[19] = GUICtrlCreateButton("Eingaben löschen",66,500,150,35)
    $gui[20] = GUICtrlCreateButton("Email abschicken",300,500,150,35)
    $gui[21] = GUICtrlCreateButton("Beenden",534,500,150,35)
    GUICtrlSetState($gui[10],$GUI_CHECKED)
    GUICtrlSetState($gui[14],$GUI_CHECKED)
    GUICtrlSetLimit($gui[9],5)
    GUISetState(@SW_SHOW)
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE, $gui[21]
    Exit
    Case $gui[18]
    GUICtrlSetData($gui[17],"")
    $anhang_new = ""
    $file = StringSplit(FileOpenDialog("", @MyDocumentsDir & "\", "alle Dateien (*.*)", 1+4), "|")
    If $file[0] = 1 Then
    $anhang_new &= StringReplace($file[1],'"',"")&";"
    ElseIf $file[0] > 1 Then
    For $i = 2 To UBound($file)-1
    $anhang_new &= $file[1]&"\"&$file[$i]&";"
    Next
    EndIf
    GUICtrlSetData($gui[17],StringTrimRight($anhang_new,1))
    Case $gui[19]; löschen
    GUICtrlSetData($gui[1],"")
    GUICtrlSetData($gui[2],"")
    GUICtrlSetData($gui[3],"")
    GUICtrlSetData($gui[4],"")
    GUICtrlSetData($gui[5],"")
    GUICtrlSetData($gui[6],"")
    GUICtrlSetData($gui[7],"")
    GUICtrlSetData($gui[8],"")
    GUICtrlSetState($gui[10],$GUI_CHECKED)
    GUICtrlSetData($gui[12],"25")
    GUICtrlSetState($gui[14],$GUI_CHECKED)
    GUICtrlSetData($gui[15],"")
    GUICtrlSetData($gui[16],"")
    GUICtrlSetData($gui[17],"")
    Case $gui[20]; abschicken
    Local $read[15]
    $read[1] = GUICtrlRead($gui[1]); Von
    $read[2] = GUICtrlRead($gui[2]); An
    $read[3] = GUICtrlRead($gui[3]); CC
    $read[4] = GUICtrlRead($gui[4]); BCC
    $read[5] = GUICtrlRead($gui[5]); Absendername
    $read[6] = GUICtrlRead($gui[6]); Smtp-Server
    $read[7] = GUICtrlRead($gui[7]); Anmeldename
    $read[8] = GUICtrlRead($gui[8]); Passwort
    $read[9] = $wichtig ; Wichtigkeit
    $read[10] = GUICtrlRead($gui[12]); port
    $read[11] = $ssl ; SSL
    $read[12] = GUICtrlRead($gui[15]); Betreff
    $read[13] = GUICtrlRead($gui[16]); Inhalt
    $read[14] = GUICtrlRead($gui[17]); Anhang
    If FileExists(_PathFull($read[13])) Then
    $read_txt = FileOpen($read[13],0)
    $read[13] = FileRead($read_txt)
    FileClose($read_txt)
    EndIf
    Switch ""
    Case $read[1], $read[2], $read[6], $read[12], $read[13]
    MsgBox(262160, 'sende Email', "Es müssen mindestens folgende Felder ausgefüllt sein:"&@CRLF&"Von, An, Smtp-Server, Betreff, Nachricht")
    Case Else
    GUICtrlSetData($gui[20],"Email wird versendet")
    GUICtrlSetData($gui[21],"bitte warten...")
    GUICtrlSetState($gui[19],$GUI_DISABLE)
    GUICtrlSetState($gui[20],$GUI_DISABLE)
    GUICtrlSetState($gui[21],$GUI_DISABLE)
    $rc = _INetSmtpMailCom($read[1],$read[2],$read[6],$read[12],$read[13],$read[5],$read[7],$read[8],$read[14],$read[3],$read[4],$read[9],$read[10],$read[11])
    If @error Then
    MsgBox(262160,"sende Email","Fehler beim Versenden der Nachricht"&@CRLF&"Fehlercode: " & @error & " Beschreibung: " & $rc & @CRLF)
    SetError(1)
    Else
    MsgBox(262208,"sende Email","Die Nachricht wurde erfolgreich versendet.")
    SetError(0)
    ControlClick($gui[0],"",$gui[19])
    EndIf
    GUICtrlSetData($gui[20],"Email abschicken")
    GUICtrlSetData($gui[21],"Beenden")
    GUICtrlSetState($gui[19],$GUI_ENABLE)
    GUICtrlSetState($gui[20],$GUI_ENABLE)
    GUICtrlSetState($gui[21],$GUI_ENABLE)
    EndSwitch
    Case $gui[9]; Variable Wichtigkeit niedrig festlegen
    $wichtig = "Low"
    Case $gui[10]; Variable Wichtigkeit normal festlegen
    $wichtig = "Normal"
    Case $gui[11]; Variable Wichtigkeit hoch festlegen
    $wichtig = "High"
    Case $gui[14]
    $ssl = "0"
    GUICtrlSetData($gui[12],"25")
    Case $gui[13]
    $ssl = "1"
    GUICtrlSetData($gui[12],"465")
    EndSwitch
    WEnd
    EndFunc ;==>gui

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

    ; Com Error Handler
    Func MyErrFunc()
    $HexNumber = Hex($oMyError.number, 8)
    $oMyRet[0] = $HexNumber
    $oMyRet[1] = StringStripWS($oMyError.description, 3)
    mbparam(2)
    ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF)
    SetError(1); something to check for when this function returns
    Return
    EndFunc ;==>MyErrFunc

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

    Func mbparam($flag = 0)
    Switch $flag
    Case 0
    ConsoleWrite(@CRLF& _
    "Folgende Parameter sind notwendig ([ ] = optional):"& @CRLF& _
    @CRLF & _
    "sende_email.exe 1 2 3 4 5 [6 7 8 9 10 11 12 13 14]"&@CRLF& _
    StringFormat("%-23s %-25s","1 = Absender-Adresse","(Ihre Email-Adresse)")&@CRLF& _
    StringFormat("%-23s %-25s","2 = Empfaenger-Adresse","(Die Empfaenger Email-Adresse)")&@CRLF& _
    StringFormat("%-23s %-25s","3 = Smtp-Server","(Der SMTP-Server Ihres Email-Kontos)")&@CRLF& _
    StringFormat("%-23s %-25s","4 = Betreff","(Der Betreff der Email)")&@CRLF& _
    StringFormat("%-23s %-25s","5 = Nachricht","(HTML-Mail wenn '<html></html>' vorhanden)") &@CRLF& _
    StringFormat("%-23s %-22s","","(es kann auch der Pfad zu einer Datei angegeben werden.)")&@CRLF& _
    "[optional]"&@CRLF& _
    StringFormat("%-23s %-25s","6 = Absender-Name","(Angezeigter Name)")&@CRLF& _
    StringFormat("%-23s %-25s","7 = Anmeldename","(Ihr Zugangsname i.d.R. Ihre Email-Adresse)")&@CRLF& _
    StringFormat("%-23s %-25s","8 = Passwort","(Ihr Zugangspasswort zu Ihrem Email-Konto)")&@CRLF& _
    StringFormat("%-23s %-25s","9 = Dateianhang","(Pfad zu/r Datei/n, die angehaengt werden soll/en)")&@CRLF& _
    StringFormat("%-23s %-25s","10 = Cc-Adresse/n","(CC-Empfaenger dieser Email)")&@CRLF& _
    StringFormat("%-23s %-25s","11 = Bcc-Adresse/n","(BCC-Empfaenger dieser Email)")&@CRLF& _
    StringFormat("%-23s %-25s","12 = Wichtigkeit","(Standard = 'Normal', (Hoch, Niedrig))")&@CRLF& _
    StringFormat("%-23s %-25s","13 = Port","(Standard = 25)")&@CRLF& _
    StringFormat("%-23s %-25s","14 = SSL","(Standard = 0; aktiviert = 1)")&@CRLF& _
    @CRLF& _
    "Die Parameter muessen in der erwarteten Reihenfolge angegeben werden."&@CRLF& _
    "Angaben mit Leerzeichen sind mit "&'" '&'"'&" einzuchliessen."&@CRLF& _
    "mehrere Empfaenger/Dateien sind mit ';' zu trennen"&@CRLF& _
    "eine grafische Oberflaeche zum Versenden Ihrer Email erhalten Sie mit '/gui'"&@CRLF)
    Case 1
    ConsoleWrite(@CRLF&"!!! Bei der Angabe der Parameter ist ein Fehler aufgetreten !!!" &@CRLF& _
    "Geben Sie nach dem Programmnamen den Parameter /? oder /help an, um eine"&@CRLF& _
    "Uebersicht aller notwendigen/optionalen Parameter zu erhalten."&@CRLF)
    SetError(1)
    $flag = 0
    Case 2
    ConsoleWrite(@CRLF&"!!! Bei der Verarbeitung der Parameter ist ein Fehler aufgetreten !!!" &@CRLF& "Es wurden weniger als 14 Parameter uebergeben!!!"&@CRLF& _
    "Geben Sie nach dem Programmnamen den Parameter /? oder /help an, um eine"&@CRLF& _
    "Uebersicht aller notwendigen/optionalen Parameter zu erhalten."&@CRLF)
    SetError(1)
    $flag = 0
    Case 3
    ConsoleWrite(@CRLF&"!!! Bei der Verarbeitung der Parameter ist ein Fehler aufgetreten !!!" &@CRLF& "Es wurden mehr als 14 Parameter uebergeben!!!"&@CRLF& _
    "Geben Sie nach dem Programmnamen den Parameter /? oder /help an, um eine"&@CRLF& _
    "Uebersicht aller notwendigen/optionalen Parameter zu erhalten."&@CRLF)
    SetError(1)
    $flag = 0
    EndSwitch

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

    EndFunc ;==>mbmparam

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

    Func _PathFull($sRelativePath, $sBasePath = @WorkingDir)
    If Not $sRelativePath Or $sRelativePath = "." Then Return $sBasePath
    Local $sFullPath = StringReplace($sRelativePath, "/", "\") ; Holds the full path (later, minus the root)
    Local Const $sFullPathConst = $sFullPath ; Holds a constant version of the full path.
    Local $sPath ; Holds the root drive/server
    Local $bRootOnly = StringLeft($sFullPath, 1) = "\" And StringMid($sFullPath, 2, 1) <> "\"
    For $i = 1 To 2
    $sPath = StringLeft($sFullPath, 2)
    If $sPath = "\\" Then
    $sFullPath = StringTrimLeft($sFullPath, 2)
    $sPath &= StringLeft($sFullPath, StringInStr($sFullPath, "\") - 1)
    ExitLoop
    ElseIf StringRight($sPath, 1) = ":" Then
    $sFullPath = StringTrimLeft($sFullPath, 2)
    ExitLoop
    Else
    $sFullPath = $sBasePath & "\" & $sFullPath
    EndIf
    Next
    If $i = 3 Then Return ""
    Local $aTemp = StringSplit($sFullPath, "\")
    Local $aPathParts[$aTemp[0]], $j = 0
    For $i = 2 To $aTemp[0]
    If $aTemp[$i] = ".." Then
    If $j Then $j -= 1
    ElseIf Not ($aTemp[$i] = "" And $i <> $aTemp[0]) And $aTemp[$i] <> "." Then
    $aPathParts[$j] = $aTemp[$i]
    $j += 1
    EndIf
    Next
    $sFullPath = $sPath
    If Not $bRootOnly Then
    For $i = 0 To $j - 1
    $sFullPath &= "\" & $aPathParts[$i]
    Next
    Else
    $sFullPath &= $sFullPathConst
    If StringInStr($sFullPath, "..") Then $sFullPath = _PathFull($sFullPath)
    EndIf
    While StringInStr($sFullPath, ".\")
    $sFullPath = StringReplace($sFullPath, ".\", "\")
    WEnd
    Return $sFullPath
    EndFunc ;==>_PathFull

    [/autoit]

    anbei auch eine kompilierte Version.
    Ich habe auf den UPX-Packer verzichtet, da dieser doch immer wieder einen Viren-Software Fehlalarm auslöst.

    Fühlt euch frei das Script zu verwenden, zu verbessern, zu kritisieren, etc ...

  • Meinung zu Botcoding und wie geht www.autoit.de damit um

    • Schnuffel
    • 10. April 2009 um 21:09

    Ich finde es in Ordnung,
    wenn wir im deutschen Forum die Messlatte für das Einstufen von "Bot's" recht niedrig ansetzen.
    Es entspricht unserer Ethik.
    Auch wenn ich glaube, dass das nicht viel helfen wird.

    Wir sollten uns über folgende Tatsachen im Klaren sein.
    1. Der Prozess des "Umdenkens" in den Köpfen der "Botter" wird sicher noch viele Jahre / Generationen benötigen,
    bis alle begriffen haben, dass es eine "bessere" Welt nur geben kann wenn wir uns nicht gegenseitig bescheissen.
    2. Solange es im engl. Forum geduldet oder sogar unterstützt wird, dass es Thread's gibt,
    die sich mit Bot's über WoW befassen, 464 Beiträge haben und eine regelrechte Anleitung darstellen, wie man Bot's schreibt,
    kann der Ruf von AutoIt von uns nicht gerettet werden...

    Der Ruf nach Beschiss wird so schnell nicht verstummen.
    Und nachdem jedes neue Mitglied mindestens einen "Schuss (Thread) frei hat", wird es immer Anfragen bezgl. Bot's geben.

    Erkenntnisse:
    1. Einen User der Bot's programmieren will zu Verwarnen oder sogar zu kicken erhöht nur seine Intention,
    sich unter einem anderen Namen wieder anzumelden und seine Methode der Erlangung von Information zu verfeinern.
    2. Einen brauchbaren Bot mit AutoIt zu programmieren erfordert schon mehr, als nur ein wenig PixelSearch & Co.
    D.h. so ein Script-Kiddie braucht Info's von einem erfahrenen Progger.
    Bekommt er die nicht, gibt er von selber wieder auf, oder sucht in einem anderen Forum.
    Daher ist unsere einzige "Waffe" die Verweigerung unseres Wissens.

    Schlusswort:
    Von 10 interessierten "Neulingen" die botten wollen, werden sicherlich 8 gute Programmierer; das kommt dann mit dem Alter...
    Wenn wir alle 10 verstossen, steigt die Wahrscheinlichkeit, dass aus mind. 6 der 10 "schlechte" Programmierer werden. (BlackHat's)
    Es hat sich gezeigt, dass kontrolliertes Führen besser ist, als Verstossen.

    Richtet doch eine kontrollierte Spielwiese ein, ohne aktiv daran teilzunehmen
    (ich denke, die Bot-Coding-Zone war schon der richtige Ansatz, schiebt alle Thread's in die Zone und gut)

    Nachdem ich selber unabsichtlich die Erfahrung schon machen musste verwarnt zu werden, halte ich es für sinnvoller,
    diejenigen zu verwarnen die Hilfe leisten wenn diese denn fachkundig ist. Ein erfahrener User läßt sich nicht so gern verwarnen... :rolleyes:

    sorry, wollte schon immer mal ein Buch schreiben :rofl:

  • Zeit Differenz berechnen

    • Schnuffel
    • 9. April 2009 um 23:29

    ich hab jetzt nur eine banale Funktion zu bieten. :D
    Kannst Dir ja raussuchen, was Dir besser taugt...

    Spoiler anzeigen
    [autoit]

    $n_sec = 13625647
    MsgBox(0, '', _SecondsToTime($n_sec))

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

    Func _SecondsToTime($n_sec)
    Local $d,$h,$m
    $d = Floor($n_sec/86400)
    $n_sec -= ($d*86400)
    $h = Floor($n_sec/3600)
    If $h < 10 Then $h = "0"&$h
    $n_sec -= ($h*3600)
    $m = Floor($n_sec/60)
    If $m < 10 Then $m = "0"&$m
    $n_sec -= ($m*60)
    If $n_sec < 10 Then $n_sec = "0"&$n_sec
    Return($d&" Tage "&$h&":"&$m&":"&$n_sec)
    EndFunc

    [/autoit]
  • Zeit Differenz berechnen

    • Schnuffel
    • 9. April 2009 um 22:40

    Hallo Tom Tom,

    so wie ich Deine frage lese,
    hast Du Dir die schon selbst beantwortet. ;)

  • Beep durch lautsprecher

    • Schnuffel
    • 8. April 2009 um 21:15

    Hallo kloo,

    also ich habe einen Laptop in dem definitiv kein interner Speaker drin ist.
    Ich habe lediglich interne Lautsprecher.
    Bei mir funktioniert folgendes ohne Probleme.

    Spoiler anzeigen
    [autoit]

    $c1 = 264
    $d1 = 297
    $e1 = 330
    $f1 = 352
    $g1 = 396
    $a1 = 440
    $h1 = 495
    $c2 = 528

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

    Beep($c1,200)
    sleep(100)

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

    Beep($d1,200)
    sleep(100)

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

    Beep($e1,200)
    sleep(100)

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

    Beep($f1,200)
    sleep(100)

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

    Beep($g1,500)
    sleep(50)
    Beep($g1,500)
    sleep(50)

    [/autoit]


    Nachdem das anscheinend nicht bei jedem so ist, bleibt nur die Vermutung, dass das von der Hardware abhängig ist.
    D.h. wenn das Script bei Dir keinen "mucks" von sich gibt, dann unterstützt dein Motherboard dieses Feature nicht.

  • Erkennen ob USB-Gerät angeschlossen ist

    • Schnuffel
    • 4. April 2009 um 21:29

    Hallo Alina,
    Oscar hatte mal ein Script zum Sperren des PC's via USB-Stick.
    Er verwendete den Reg-Schlüssel: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbstor\Enum
    (wobei 'Enum' nur existiert, wenn ein Usb-Gerät vorhanden ist)

    Hier der Link zu seinem Script

  • End Of File...

    • Schnuffel
    • 2. April 2009 um 17:47

    benutzt du Hilfe, bekommst Du antwort ... :rofl:
    guckst Du hier: Link

    Edit: und ich war endlos langsam ... ;(

  • Aktualisieren...aber wie?

    • Schnuffel
    • 2. April 2009 um 17:17

    vielleicht so:

    Spoiler anzeigen
    [autoit]

    AdlibEnable("myadlib", 1000)
    ;...
    Exit

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

    Func myadlib()
    guictrlsetdata($Editfeld,FileRead("neu.txt"))
    EndFunc

    [/autoit]
  • Steuerung meines 2ten computers?

    • Schnuffel
    • 1. April 2009 um 12:51

    ich denke du hast dafür nur zwei Möglichkeiten.

    Entweder du bastelst Dir einen "Server", der auf dem Zielrechner läuft und "horcht", was Du Ihm so für Tasten schickst.
    Zu diesen führt er dann jeweils einen Befehl aus.

    Oder du führst auf dem Zielrechner direkt Programme aus,
    die du mit den SysInternals Tools rüberschieben und als Admin auch starten kannst.

  • Steuerung meines 2ten computers?

    • Schnuffel
    • 1. April 2009 um 12:19

    Hallo Sweet Lucia,

    ich denke Du meinst so etwas wie z.B. UltraVNC
    Damit kannst Du Remote Deinen 2. PC fernsteuern.

    Gibt natürlich noch viele andere Programme, die das auch können.
    Einfach mal bei Google VNC eingeben :)

  • Platzhalter in einer Zeile

    • Schnuffel
    • 31. März 2009 um 13:56

    ich würde das so machen:

    Spoiler anzeigen
    [autoit]

    MsgBox(0, "Regular Expression Replace Test", StringRegExpReplace("123456 Das ist nur ein Test...", "[0-9]", ""))

    [/autoit]

    Wenn Du Zahlen zwischen dem Text hast, dann entstehen natürlich 2 Leerzeichen, da wo die Zahl stand.
    Das kann man auch mit StringRegExpReplace ändern.
    Bin aber nicht so firm darin und weiß auch nicht, ob das in einem Durchlauf geht.
    Nötigenfalls noch mal nachfragen ;)

  • Platzhalter in einer Zeile

    • Schnuffel
    • 31. März 2009 um 12:25

    Hallo gorgo1984,

    ich muß passen,
    da ich nicht im Ansatz verstehe was Du eigentlich machen willst ?(

  • Problem mit StringSplit

    • Schnuffel
    • 31. März 2009 um 10:39

    macht das doch nicht so kompliziert...
    der Standard-Trenner in AutoIt ist das "|"-Zeichen.
    @Commander21: wenn Du in Deiner Datei SiteList.dat die Einträge mit diesem Zeichen trennst, dann kannst Du die Datei direkt an das Control übergeben.
    Das macht dann den Rest schon ;)
    siehe:

    Spoiler anzeigen
    [autoit]

    Case $Button5
    GUICtrlSetData ($List1, "")
    ;wenn Daten in SiteList.dat mit "|" getrennt werden ...
    GUICtrlSetData ($List1,FileRead (@ScriptDir & "\SiteList.dat"))

    [/autoit]

    Ansonsten vor dem Übergeben der Datei an das Control einfach den Standard-Seperator ändern:

    Spoiler anzeigen
    [autoit]

    Case $Button5
    Opt("GUIDataSeparatorChar",";")
    GUICtrlSetData ($List1, "")
    GUICtrlSetData ($List1,FileRead (@ScriptDir & "\SiteList.dat"))
    Opt("GUIDataSeparatorChar","|")

    [/autoit]
  • Grafische Oberfläche mit Bildern

    • Schnuffel
    • 28. März 2009 um 18:22

    guckst Du hier

  • Fragen zu den File... Funktionen

    • Schnuffel
    • 28. März 2009 um 17:36

    macht doch irgendwie keinen Sinn, ?(
    einen Ordner löschen zu wollen, in dem ich gerade ein Datei auswähle ...
    Der Ordner wird von Windows doch gesperrt, da er in dem Moment der Datei ein Handle zuweist.
    Entweder su kopierst Dir die Datei in einen anderen Ordner, in dem Du dann auch die Datei wieder löschen kannst,
    oder du löscht den Ordner erst bei Beenden des Scripts.

  • Fragen zu den File... Funktionen

    • Schnuffel
    • 28. März 2009 um 16:36

    Hast Du ein konkretes Script, bei dem das Problem nachvollziehbar auftritt.

    Bevor wir uns hier alle Testscript's basteln ... :whistling:

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™