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

  • Consolen Fenster hooken

    • Schnuffel
    • 18. Mai 2021 um 11:26

    den hab ich wieder gelöscht als ich nicht weiterkam.

    Ich werde versuchen dass nochmal hinzukriegen. ^^

  • Consolen Fenster hooken

    • Schnuffel
    • 16. Mai 2021 um 20:25

    ich habe die Funktionen soweit ich das verstanden hatte auf dein ConsolenFenster angewendet.

    Ich bekam aber nur einen grünen Strich hin.

    Mir sagte das aber, dass es grundsätzlich möglich ist auf das SystemMenu einzuwirken.

    Ob SystemOwnerDrawn da nicht "oversized" ist kann ich nicht beurteilen.

    In diversen Diskussionen wird diese Methode als "overloaded" betitelt.

    Ob die Zuweisung eines Icons das wert ist musst du entscheiden.

    Ich würde aber auch eher sagen, bau dir dein eigenes Console Fenster, dann hast du volle Kontrolle und musst nicht fremde Fenster hooken ;)

  • Consolen Fenster hooken

    • Schnuffel
    • 15. Mai 2021 um 17:26

    In der ModernMenu UDF macht der Ersteller lustige Dinge mit dem Menü.

    Ich habe beim schnellen drüber hinweg fliegen nur gesehen, dass er SetOwnerDrawn verwendet. Möglicherweise ist das ein Ansatz.

    Bei einem kleinen Versuch konnte ich aber nur den bkcolor eines Items grün färben in deinem Konsolen Fenster.

    hier noch die aktualisierte Version von LarsJ im autoitscript.com Forum: Link

  • Sparen (erledigt)

    • Schnuffel
    • 18. November 2016 um 19:47

    Hallo Alina,

    sei bitte nur vorsichtig wenn du einen Anlageberater / Finanzmakler zu Rate ziehst.
    Bei jeglicher Anlageform gibt es unterschiedliche Provisionen und meist versucht der gute Mensch eher seinen Geldbeutel zu füllen als auf deine Bedürfe zugeschnitten das für dich Richtige zu empfehlen..

    Ich persönlich kann dir im Moment nur Container empfehlen.
    lDas Schifffrachtgeschäft ist die ketzten Jahre stabil gewesen und ist auch unbeeindruckt von Krisen...

    Aber wie gesagt du brauchst den Anlageberater deines Vertrauens. ;)

  • MouseClicks bei einber VM simulieren

    • Schnuffel
    • 3. Juni 2016 um 16:17

    das verstehe ich nicht...
    Das Skript soll schon auf der VM selbst laufen aber diese ist ja nicht 24/7 connected.
    was hat das mit connected zu tun???

    Eine VM läuft und damit Punkt.


    Vergiß doch mal diese RDP-Geschichte. Das wird dich nicht zum Ziel führen.
    Betrachte die VM doch mal als das, was es ist : ein PC

    Darauf soll ein Script laufen. Gut

    Wo ist das Problem?

    Einfache Sache ist ein Grundsatz von M$: eine GUI erscheint immer im Kontext des ausführenden Users.
    Ist der User auch aktiv an einer "Windows-Konsole" (ich nenne das mal bewusst so, da jeder Desktop eigentlich nichts anders ist, auch der lokale)
    angemeldet kann er die Fenster, die als aktiv und sichtbar gesetzt und in seinem Kontext ausgeführt werden sehen.

    Mehr ist es nicht.
    Damit ist dein MouseClick gestorben ;)

  • MouseClicks bei einber VM simulieren

    • Schnuffel
    • 2. Juni 2016 um 19:21

    ich habe das Problem jetztz folgendermaßen verstanden...

    Es soll in einer VM bei angemeldetem User ein MouseClick ausgeführt werden.
    Dies wurde bisher versucht, indem von einem 2. PC eine RDP-Session zu der VM aufgebaut wurde um den MouseClick auszuführen.

    Da sollte klar sein, keine RDP-Session, ergo kein MouseClick.

    Aber warum wird das Script für den MouseClick nicht direkt auf der VM ausgeführt???
    Im Kontext des angemeldeten Users würde dann auch die GUI erscheinen und kann angeclickt werden.

    Wobei ich da auch zu Bedenken geben muss, dass MouseClick die unglücklichste Variante ist.
    Da gibt es sichere Methoden für fast alle Anwendungen...

  • Probleme mit Dialogen und der Anzeigeskalierung von Windows (7 & 8)

    • Schnuffel
    • 1. Juni 2016 um 21:41

    um variabel auf die Usereinstellung reagieren zu können mache ich das in solchen Fällen immer so:

    AutoIt
    Global $scalingfactor = 96 / RegRead('HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics', 'AppliedDPI')
    
    
    $Gui_Status = GUICreate('Demo Scaling-Factor', 389, 140, -1, -1)
    GUICtrlCreateLabel('Demo Scaling-Factor', 5, 5, 200, 20)
    GUICtrlSetFont(-1, 12 * $scalingfactor, 600)
    GUICtrlCreateLabel('', 5, 30, 340, 1)
    Global $t_MsgPro = GUICtrlCreateLabel('Demo Scaling-Factor' & @CRLF & @CRLF & 'Demo Scaling-Factor', 5, 40, 350, 80)
    GUICtrlSetFont(-1, 11 * $scalingfactor)
    GUICtrlCreateLabel('Version: 0.0.0.0',5, 140 - 14, 80)
    GUICtrlSetFont(-1, 8 * $scalingfactor)
    GUISetState()
    
    
    Do
    
    
    Until GuiGetMsg() = -3
    Alles anzeigen
  • Code-Jack stellt sich vor

    • Schnuffel
    • 27. Mai 2016 um 14:18

    auch von mir ein Herzlich Willkommen.

    du schreibst sympathisch, da hilft man gern ;)

  • Server "vergisst" Passwörter?

    • Schnuffel
    • 5. Mai 2016 um 11:03

    Hallo Bugfix,

    ein Server vergibt für jeden User eine SID. der Username ist nur zur Anmeldung als sogenannte Credentials wichtig. Der Server und auch die PC's interessieren sich danach nur für die SID.
    Die Aussage, dass der User x gelöscht und nicht wieder hergestellt werden kann bedeutet, dass seine eindeutige SID gelöscht wird. Damit wäre ein entschlüsseln von Daten beruhend auf der SID nicht mehr möglich.
    Wenn ihr keine Daten verschlüsselt, dann kannst du diese Meldung ignorieren und jeden User 100x anlegen und wieder löschen.
    ;)

    PS: wie sieht das mit Kennwort Ablauf aus? Standardmäßig werden Userkonten mit einem Zeitablauf erstellt, der erzwingt, dass das Passwort geändert werden muss.
    Das kann man abstellen indem man im Konto des Users auf dem Server in den Eigenschaften die Option "Kennwort läuft nie ab" anklickt.

    Da Ihr keine Domäne habt, können die User das Passwort nicht ändern.
    Da würde ich mal nachsehen ...

    Ansonsten würde ich sagen, dass die SAM Datenbak beschädigt ist.
    Da dein Server ja schon öfter gesponnen hat, wäre es vielleicht doch an der Zeit diesen mal mit einem aktuellen BS neu zu installieren ...

    Gruß
    Schnuffel

  • Windows Icons fixieren

    • Schnuffel
    • 29. April 2016 um 16:30

    zur Übung bestimmt ganz lehrreich, aber ich finde mann kann manchmal auch auf fertige Lösungen zurückgreifen.
    Ich verwende seit vielen Jahren zufrieden DeskSave: http://www.heise.de/download/desksave-1132746.html

  • 2 Dienste, die gegenseitig voneinander abhängig sind - wie Abhängigkeit auflösen? GELÖST

    • Schnuffel
    • 3. April 2016 um 14:16

    warum deaktivierst du dann den Telefoniedienst nicht und startest neu?

  • (S) Macro für einfachen Ablauf einer Webseite gesucht

    • Schnuffel
    • 3. April 2016 um 14:13

    wenn das ganze nicht mit Firefox und iMacro ablaufen muss geht das Ganze auch mit autoit internen Bordmitteln.
    Dazu müsste man aber mehr über die Anforderung und die Abfrage auf der Webseite wissen.

    Grundsätzlich kann man mit autoit ganze Webseiten laden
    und den Inhalt mit allem prüfen, zerlegen, suchen und was weiß ich sonst noch so alles ^^.

    Ob sich in diesem Forum jemand findet der iMacro beherrscht kann ich nicht sagen ...

  • Ich suche einen Befehl für AutoIt

    • Schnuffel
    • 3. April 2016 um 14:08

    Hallo BigRox,

    hier mal ein quick & dirty Script um eine bestimmten Dateiendung in diesem Fenster zu markieren:

    Spoiler anzeigen
    AutoIt
    Local $sEndung = 'pdf'
    Local $sWinTitile = "Dateizuordnungen festlegen"
    Run(@ComSpec & " /c " & 'control.exe /name Microsoft.DefaultPrograms /page pageFileAssoc', "", @SW_HIDE)
    WinWait($sWinTitile)
    Sleep(2000)
    ControlSend($sWinTitile, '', "[CLASS:SysListView32; INSTANCE:1]",'.' & $sEndung)

    Für eine Suche in der Registry nach registrierten Dateiendungen empfehle ich mal diesen Artikel (auf die schnelle gegoogelt ...)
    https://www.windowspro.de/andreas-krosch…unter-windows-7

  • Chrome Tab auslesen

    • Schnuffel
    • 31. März 2016 um 20:01

    Hilfe gibt es zu diesem Thema eher im engl. Forum...
    siehe z.B.: https://www.autoitscript.com/forum/topic/12…till-and-again/

    Es gibt aber noch weitere Threads im engl. Forum dazu.
    Im deutschen Forum ist es damit etwas dünn ...

  • Autoit Schleife hilfe

    • Schnuffel
    • 31. März 2016 um 19:57

    bei der Art der Fragestellung und der Funktion die ausgeführt werden soll,
    ist der Gedanke an einen bot aber nicht abwägig. ;)

  • Eigene Funktionen eines Tools in UDF ausgliedern?

    • Schnuffel
    • 31. März 2016 um 19:53

    über dieses Thema haben sich schon viele Gedanken gemacht.

    Für mich hat sich folgendes als praktikabel und sinnvoll etabliert.
    Link: https://www.autoitscript.com/wiki/Best_coding_practices

    Über die Thematik Global und Local Variablen gab es auch schon ewige Diskussionen.

    Ich glaube mich zu erinnern, dass es mal ein Problem mit Globalen Variablen gab und es besser war
    im gesamten Script nur Local Variablen zu verwenden.

    Ich finde aber auf die Schnelle den Thread nicht...

  • Transparente InputBox?

    • Schnuffel
    • 21. November 2015 um 19:42

    einfach mal suchen ;)

    https://autoit.de/index.php/Thre…8563#post128563

  • ControlCommand ( SelctCurrentSelection/SelectString ) funktioniert nicht

    • Schnuffel
    • 4. Oktober 2015 um 20:53

    Dein Script ist bei mir nicht ausführbar. Wird daran liegen, dass dein Script kein Fenster öffnet, dass dein Problem nachstellen kann.
    So wird Hilfe schwierig.
    Wenn du wenigstens erwähnen würdest, wie das Programm und das Control heißt, dann findet sich vll. jemand, der das Programm auch hat.

    Bezüglich "WindowDetective" wird Hilfe auch schwierig, da ich das Programm nicht mal kenne.
    Klingt aber danach, dass das Programm entweder Administrativ gestartet werden sollte, oder es Probleme mit dem auszulesenden Programm hat.

    Alles in allem gibst Du dir zwar Mühe deine Anfragen korrekt zu formulieren, lieferst aber zu wenig Inhalt...
    ;)

  • ControlCommand ( SelctCurrentSelection/SelectString ) funktioniert nicht

    • Schnuffel
    • 3. Oktober 2015 um 20:36

    wenn Du jetzt noch ein "ausführbares" Script einstellst, wird es sich auch jemand ansehen.

    So müsste man sich erst eine Umgebung basteln.
    Das wird wohl keiner tun ...

  • eMail via AutoIt?

    • Schnuffel
    • 2. Oktober 2015 um 20:46

    Du kannst Dir die Funktion "_INetSmtpMailCom" auch aus meinem Script kopieren ...

    Spoiler anzeigen
    HTML
    #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
    
    
    For $i = 1 To $CmdLine[0]
    	$Cmd[$i] = $CmdLine[$i]
    Next
    For $i = $CmdLine[0]+1 To 14
    	$Cmd[$i] = ""
    Next
    
    
    If FileExists(_PathFull($Cmd[5])) Then
    	$read_txt = FileOpen($Cmd[5],0)
    	$Cmd[5] = FileRead($read_txt)
    	FileClose($read_txt)
    EndIf
    
    
    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
    
    
    #cs
    _InetSmtpMailCom ist ein Script von "Jos" aus dem engl. Forum von AutoIt:
    http://www.autoitscript.com/forum/index.php?showtopic=23860&hl=_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 StringRight($as_Body,7) = "</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)
    
    
    	$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")
    
    
    	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
    
    
    	$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
    
    
    ; 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
    
    
    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
    
    
    EndFunc   ;==>mbmparam
    
    
    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
    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™