den hab ich wieder gelöscht als ich nicht weiterkam.
Ich werde versuchen dass nochmal hinzukriegen. ![]()
den hab ich wieder gelöscht als ich nicht weiterkam.
Ich werde versuchen dass nochmal hinzukriegen. ![]()
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 ![]()
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
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. ![]()
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 ![]()
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...
um variabel auf die Usereinstellung reagieren zu können mache ich das in solchen Fällen immer so:
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
auch von mir ein Herzlich Willkommen.
du schreibst sympathisch, da hilft man gern ![]()
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
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
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 ...
Hallo BigRox,
hier mal ein quick & dirty Script um eine bestimmten Dateiendung in diesem Fenster zu markieren:
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
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 ...
bei der Art der Fragestellung und der Funktion die ausgeführt werden soll,
ist der Gedanke an einen bot aber nicht abwägig. ![]()
ü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...
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...![]()
Du kannst Dir die Funktion "_INetSmtpMailCom" auch aus meinem Script kopieren ...
#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