Fokuswechsel zwischen zwei Programmen

Hallo,

ich schreibe gerade eine kleine Anwendung, bei der ich eine Mail-Adresse in die Zwischenablage kopiere und dann automatisch zum Mozilla Thunderbird wechseln will. Wie kann ich den Fokus wechseln ?

Noch besser wäre es natürlich, wenn ich gleich aus Access heraus eine Mail verschicken könnte. Aber das ist sicher zu umfangreich oder kennst du eine fertige, freie Anwendung ?

Schönen Dank und Grüße
Ralph

Mail-Adresse in die Zwischenablage kopiere und dann
automatisch zum Mozilla Thunderbird wechseln will.

Hallo Ralph,
über VB innerhalb von MSAccess kannst Du an den Standard-Mailclient auch die Mail direkt senden.
Die VB-Funktion „DoCmd SendMail …“ erledigt den kompletten Sendebefehl. Die Parameter sind der Empfänger, cc:, bcc:, subject (Betreff), Text in Form einer Variablen.
Ich bin mir lediglich nicht sicher, ob auch Anlagen angehängt werden können, meine aber schon.

Der Focuswechsel funktioniert auch über VB aber die Ausgabe über die Zwischenablage geht dann nur über die SendKey-Funktion in VB und das klappt nur sehr unzuverlässig, wäre als nichts, was als VB-Script stabil zu empfehlen wäre.

Der Befehl zum Aufruf eines bestimmten Fensters in VB lautet: SHELL
Schau Dir die Hilfefunktionen in VB einfach mal an. Du kannst das Fenster über einen Index oder über dessen Fensterüberschrift adressieren und das Fenster dabei auch mit oder ohne Focus öffnen bzw. minimiert öffnen, so dass Du die Mailangaben quasi unsichtbar übergibst.
Ist aber im Detail viel ausprobieren bis es stabil läuft.

Gruß
Ulrich St

Hallo Ralph!

Direkt aus Access heraus geht nicht so einfach. Dazu müsstest Du einen Mail-Client in Access programmieren. Vlt. gibt es sowas als 3rd-Party Produkt, macht aber meines Erachtens für eine kleine Software keinen Sinn.

Um sowas zu machen kommst Du um VBA übrigns nicht herum :frowning:

Folgend Funktion sollte das machen was Du willst:

Function ThunderbirdMail(strAn As String, strCC As String, strBCC As String, strBetr As String, strBody As String, strAttPfad As String)

Dim strThunderPfad As String
Dim strShell As String
Dim strEmailpth as String

'compose-parameters: „to=‚[email protected],[email protected]‘,cc=‚[email protected]‘,subject=‚dinner‘,body=‚How about dinner tonight?‘,attachment=‚C:\temp\info.doc,C:\temp\food.doc‘“
’ check your correct apllication-path here:
stremailpth= „C:\programme\thunderbird“
strThunderPfad = „“"" & stremailpth & „Thunderbird.exe " & „““"

'strAn = „my email adress,“ 'seperate multiple receivers with „,“
'strBetr = „my regard“
'strBody = „my message“
'for ecel users, if certain range of cells shall be inserted in the message:
'strBody = Range(„A1“).Value & " " & Range(„C4711“).Value & " " & Range(„X007“).Value

strShell = strThunderPfad & _
" -compose „“" & _
„to=’“ & strAn & „’,“ & _
„cc=’“ & strCC & „’,“ & _
„bcc=’“ & strBCC & „’,“ & _
„subject=’“ & strBetr & „’,“ & _
„body=’“ & strBody & „’,“ & _
„attachment=’“ & strAttPfad & „’“ & _
„“""
'MsgBox strShell 'just to check wether all this looks correct
Call Shell(strShell, vbNormalFocus)
End Function

HTH Konrad