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
#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.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)
$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,
$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
[/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
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 ...