Hallo AutoIt-Experten,
ich steh mal wieder vor meinem nächsten Problem. Ich erstelle gerade für mich und meine Arbeitskollegen ein kleines Programm, worüber wir unsere eMailvorlagen (welche wir unseren Kunden zusenden) auswählen und senden können. Soweit ist das Grundgerüst schon fertig und funktioniert auch so wie ich mir das vorstelle.
Nun kommen wir aber an den Punkt, dass auch Dateianhänge mitgesendet werden müssen. Bei einem einzelnen Dateianhang wär das kein Problem nur müssen pro Mail teils 3 Anhänge mit raus.
Also hab ich dafür Checkboxen angelegt und der User kann selbst entscheiden ob und welche Anhänge er mit rausschicken will.
Checkboxen sind bereits implentiert jedoch schnelle ich es nicht wie ich es hinbekomme das, wenn z.b. checkbox 1 und checkbox 2 aktiv sind (und checkbox 3 nicht) er dann Anhang X und Y mit anhängt (und Anhang Z z.b. nicht)
Man sollte sich mal mein Script anschauen um zu verstehen wie es funktioniert. Es ist noch lange nicht vollständig. Ich habe nur eine Inhalte gefüllt, nur um zu schauen wie es funktioniert...
Spoiler anzeigen
;################################ Includes ################################
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
;############################## User auslesen #############################
$winuser = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\winlogon", "Defaultusername")
If $winuser = "751076" then
$winuser = "Max Mustermann"
ElseIf $winuser = "828520" Then
$winuser = "Peter Mustermann"
ElseIf $winuser = "748169" Then
$winuser = "Klaus Mustermann"
ElseIf $winuser = "759732" Then
$winuser = "Horst Mustermann"
ElseIf $winuser = "828487" Then
$winuser = "Fritz Mustermann"
EndIf
$Read_ZP500_Reset1 = FileRead(@ScriptDir & '\' & 'zp_500_reset.txt')
$Read_ZP500_Reset = StringReplace($Read_ZP500_Reset1, 'Dein Name', $winuser)
$Read_LP2348_Reset1 = FileRead(@ScriptDir & '\' & 'LP2348_reset.txt')
$Read_LP2348_Reset = StringReplace($Read_LP2348_Reset1, 'Dein Name', $winuser)
;############################### Dateianhänge #############################
$Datei1 = "M:\test1.txt"
$Datei2 = "M:\test2.txt"
$Datei3 = "M:\test3.txt"
$Datei4 = "M:\test4.txt"
$Datei5 = "M:\test5.txt"
$Datei6 = "M:\test6.txt"
;############################## GUI erstellen #############################
$GUI = GUICreate("The Templater", 620, 300)
$Combo_Template = GUICtrlCreateCombo("Bitte auswählen", 30, 30, 350, 20)
GUICtrlSetData(-1,"ZP500 Resetanleitung|LP2348 Resetanleitung|LP2844 Resetanleitung|LP2844 LINE/PAGE Mode ändern|Konfiguration FSM 7.15|" & _
"Software 07.15 Serbien/Montenegro Patch|Schwedische Postleitzahlen|Software V3|Software 07.15|Datenbank Exportierung FSM Software|" & _
"Löschen der Temporären Internetdateien für den Internet Explorer|Löschen der Temporären Internetdateien für Firefox|Löschen der Temporären Internetdateien für Opera|Löschen der Temporären Internetdateien für Google Chrome|" & _
"Löschen der Temporären Internetdateien für Safari|Erstellen eines Screenshots (MAC)|Erstellen eines Screenshots|Lite Antwort Copy-Paste für DE/CH/AT Mastermails|FedEx ZP500 LINE/PAGE Mode ändern|" & _
"Z4M Resetanleitung", "Bitte auswählen")
$Combo_Template_Read = GUICtrlRead($Combo_Template)
[/autoit] [autoit][/autoit] [autoit]$Input_Template = GUICtrlCreateEdit("", 30, 60, 350, 200, BitOR ($WS_VSCROLL, $WS_HSCROLL, $ES_MULTILINE, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_WANTRETURN))
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUICtrlCreateGroup("", 395, 24, 210, 236)
GUICtrlCreateLabel("Dateianhänge:", 400, 32, 80, 18)
$check1 = GUICtrlCreateCheckbox("Testcheckbox 1", 400, 60, 150, 18)
GUICtrlSetState($check1, $GUI_HIDE)
$check2 = GUICtrlCreateCheckbox("Testcheckbox 2", 400, 90, 150, 18)
GUICtrlSetState($check2, $GUI_HIDE)
$check3 = GUICtrlCreateCheckbox("Testcheckbox 3", 400, 120, 200, 18)
GUICtrlSetState($check3, $GUI_HIDE)
$check4 = GUICtrlCreateCheckbox("Testcheckbox 4", 400, 60, 150, 18)
GUICtrlSetState($check4, $GUI_HIDE)
$check5 = GUICtrlCreateCheckbox("Testcheckbox 5", 400, 90, 150, 18)
GUICtrlSetState($check5, $GUI_HIDE)
$check6 = GUICtrlCreateCheckbox("Testcheckbox 6", 400, 120, 200, 18)
GUICtrlSetState($check6, $GUI_HIDE)
GUICtrlCreateGroup("", 30, 260, 165, 32)
GUICtrlCreateLabel("Empf.:", 35, 272, 30, 18)
$Input_Empfaenger = GUICtrlCreateInput("", 70, 270, 120, 17)
$Send_Button = GUICtrlCreateButton("Absenden", 200, 270, 60, 17)
GUISetState(@SW_SHOW, $GUI)
;######################## GUI While Schleife ##########################
While 1
Switch (GUIGetMsg())
Case $GUI_EVENT_CLOSE
Exit
Case $Combo_Template
$Combo_Template_Read = GUICtrlRead($Combo_Template)
_Combo_Template()
Case $Send_Button
$Input_Empfaenger_Read = GUICtrlRead($Input_Empfaenger)
_CreateMailItem()
EndSwitch
WEnd
;############################## Funktionen #############################
Func _CreateMailItem()
Local $olMailItem = 0
Local $olFormatRichText = 3
Local $olImportanceLow = 0
Local $olImportanceNormal= 1
Local $olImportanceHigh = 2
Local $olFormatHTML = 1
$oOApp = ObjCreate("Outlook.Application")
$oOMail = $oOApp.CreateItem($olMailItem)
With $oOMail
.To = $Input_Empfaenger_Read ;("beispiel@domain.com")
.Subject = GUICtrlRead($Combo_Template) ;"email betreff"
;.BodyFormat = $olFormatRichText
.BodyFormat = $olFormatHTML
;.Importance = $olImportanceHigh
;.Attachments.Add ("M:\test1.txt")
.HTMLBody = GUICtrlRead($Input_Template)
;.Body = GUICtrlRead($Input_Template)
.Display
;.Send ;ist aus Sicherheitsgründen standartmäßig deaktiviert
EndWith
EndFunc ;--> _CreateMailItem()
Func _Combo_Template()
If $Combo_Template_Read = "Bitte auswählen" Then
GUICtrlSetData($Input_Template, "")
GUICtrlSetState($check1, $GUI_HIDE)
GUICtrlSetState($check2, $GUI_HIDE)
GUICtrlSetState($check3, $GUI_HIDE)
GUICtrlSetState($check4, $GUI_HIDE)
GUICtrlSetState($check5, $GUI_HIDE)
GUICtrlSetState($check6, $GUI_HIDE)
EndIf
If $Combo_Template_Read = "ZP500 Resetanleitung" Then
GUICtrlSetData($Input_Template, $Read_ZP500_Reset)
GUICtrlSetState($check1, $GUI_SHOW)
GUICtrlSetState($check2, $GUI_SHOW)
GUICtrlSetState($check3, $GUI_SHOW)
GUICtrlSetState($check4, $GUI_HIDE)
GUICtrlSetState($check5, $GUI_HIDE)
GUICtrlSetState($check6, $GUI_HIDE)
EndIf
If $Combo_Template_Read = "LP2348 Resetanleitung" Then
GUICtrlSetData($Input_Template, $Read_LP2348_Reset)
GUICtrlSetState($check1, $GUI_HIDE)
GUICtrlSetState($check2, $GUI_HIDE)
GUICtrlSetState($check3, $GUI_HIDE)
GUICtrlSetState($check4, $GUI_SHOW)
GUICtrlSetState($check5, $GUI_SHOW)
GUICtrlSetState($check6, $GUI_SHOW)
EndIf
EndFunc ;--> _Combo_Template()