J'ai essayer :
► Afficher le texte
Code : Tout sélectionner
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <File.au3>
$Form1 = GUICreate("Fenetre", 517, 345, 192, 124)
$Label1 = GUICtrlCreateLabel("Générateur ", 8, 8, 277, 41)
GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
$Input1 = GUICtrlCreateInput("", 8, 80, 193, 21)
$Label2 = GUICtrlCreateLabel("Repmlis", 232, 80, 79, 17)
$Button1 = GUICtrlCreateButton("Générer", 128, 216, 289, 89, $WS_GROUP)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") ; Ceci sert pour surveiller la zone d'input
GUISetState(@SW_SHOW)
$File = "MonFichier.txt"
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Input1
ConsoleWrite(GUICtrlRead($Input1))
$s_SmtpServer="smtp.gmail.com"
$s_FromName=""
$s_FromAddress=""
$s_ToAddress=""
$s_Subject = "TEST"
$as_Body = "Test"
$s_AttachFiles = "MonFichier.txt"
$s_CcAddress = ""
$s_BccAddress = ""
$s_Username = ""
$s_Password = ""
$IPPort = 465
$ssl = 1
$s_Importance="Normal"
_INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body , $s_AttachFiles , $s_CcAddress, $s_BccAddress, $s_Importance, $s_Username, $s_Password , $IPPort , $ssl)
Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance="Normal", $s_Username = "", $s_Password = "", $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 StringInStr($as_Body, "<") And StringInStr($as_Body, ">") 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] = _PathFull($S_Files2Attach[$x])
ConsoleWrite('@@ Debug(62) : $S_Files2Attach = ' & $S_Files2Attach[$x] & @LF & '>Error code: ' & @error & @LF) ;### Debug Console
If FileExists($S_Files2Attach[$x]) Then
$objEmail.AddAttachment ($S_Files2Attach[$x])
Else
ConsoleWrite('!> File not found to attach: ' & $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
$objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High"
$objEmail.Fields.Update
; Sent the Message
$objEmail.Send
$objEmail=""
EndFunc ;==>_INetSmtpMailCom
EndSwitch
WEnd
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
Local $hWndFrom, $iIDFrom, $iCode, $hWndInput1
If Not IsHWnd($Input1) Then $hWndInput1 = GUICtrlGetHandle($Input1) ; Attention à bien utiliser le control ID de votre input
$hWndFrom = $ilParam
$iIDFrom = BitAND($iwParam, 0xFFFF) ; HiWord
$iCode = BitShift($iwParam, 16) ; LoWord
Switch $hWndFrom
Case $hWndInput1
Switch $iCode
Case $EN_CHANGE
; C'est ici que vous devez gérer vos contrôles sur l'input
$MyInput = GUICtrlRead($Input1)
If StringLen($MyInput) >= 4 Then
GUIDelete($Form1)
FileWrite( $File, & $MyInput)
Exit
EndIf
; Fin du contrôle/execution
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND


