Email senden mit ShellExecute
Geizhals » Forum » Programmierung » Email senden mit ShellExecute (2 Beiträge, 81 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
Email senden mit ShellExecute
15.04.2006, 12:40:50
hallo,

ich hab eine frage (was auch sonst?) zum folgenden code:

########################################################

Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindow Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Sub cmdSenden_Click()
Dim strTemp As String
Dim strEMail As String
Dim file As String, Ret
Dim bla As Integer
Dim filepath, filename As Object
filepath = ActiveDocument.AttachedTemplate.Path
Set filename = ActiveDocument
file = filepath & "\" & filename
strEMail = vbNullString
strTemp = Trim$(txtAn.Text)
If Len(strTemp) = 0 Then
MsgBox "Bitte geben Sie die E-Mail-Adresse des Empfängers ein!", vbOKOnly + vbInformation, title:=Me.Caption
txtAn.SetFocus
Exit Sub
Else
strEMail = strEMail & "mailto:" & strTemp
End If
strTemp = Trim$(txtBetr.Text)
If Len(strTemp) <> 0 Then
strEMail = strEMail & "?Subject=" & strTemp
End If

strTemp = txtBody.Text
If Len(Trim$(strTemp)) <> 0 Then
strTemp = Replace(strTemp, vbCrLf, vbLf)
strEMail = strEMail & "&body=" & strTemp
End If
Unload Me
ShellExecute 0, "Open", strEMail, vbNullString, vbNullString, vbNormalFocus
DoEvents
While Ret = 0 'True
Ret = FindWindow(vbNullString, "Unbenannte Nachricht")
Wend

SendKeys ("%et" & file & "{TAB}{TAB}{ENTER}")
'To send automatically change the
'ShellExecute vbNormalFocus to vbHide and add:
SendKeys ("%s")
MsgBox "Message with attachment sent."
End Sub

Private Sub UserForm_initialize()
Me.txtAn.Value = " marcelwietstruck@alice-dsl.de"
End Sub

########################################################

Durchlauf ich das Ganze im Einzelschrittmodus, geht es ohne Aufhängen (es wird zwar nix angehängt, aber es hängt sich auch nix auf).

Nehm ich nun alle Haltepunkte raus und drück F5, hängt VBA in der While...Wend-Schleife fest.
Outlook startet bis in alle Ewigkeit, kill ich VBA (und Word) mit dem Taskmanager, startet Outlook wie gewünscht mit dem Neue-Mail-Fenster.

Was mach ich falsch?

Bitte alle Erklärungen für ganz Doofe, bin absoluter Newby in Sachen VBA. ;-)

Vielen Dank schon mal

frohe Ostern,

murphy2ooo
Computer helfen uns bei der Lösung von Problemen, die wir ohne sie gar nicht hätten
Antworten PM Übersicht Chronologisch
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung