Webseiten oder eMail öffnen

Wolfgang Kluge
wolfgang@vbwelt.de

Kennt bestimmt jeder, der sich mal an das Thema drangemacht hat.
Man sieht irgendwo in einer Anwendung(meißt im Hilfemenü) einen Link auf eine Webseite oder eine eMail-Adresse und denkt sich, das kann man auch gebrauchen.
Kaum macht man sich an das Problem dran, fängt man an, das Problem mit den Unterschiedlichen Browsern zu verstehen (falls man dies nicht schon vorher getan hat).

Um immer den Standard-Browser/Standard-eMail-Client zu benutzen sollte man die Webseite/eMail mit dem Verknüpften Programm öffnen, und nicht ein Programm mit der Angabe dieser.

Dazu bietet sich die Funktion ShellExecute sehr gut an, denn nichts anderes tut Sie.
Es gibt noch andere Möglichkeiten, ich gehe aber davon aus (muss nicht richtig sein), dass nicht jede Möglichkeit auf jedem System greift.. Diese hier tut immer.


 Deklaration:
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


Es sieht sehr unschön und unprofessionell aus, wenn die angegebene Webseite nicht da ist oder der Link ganz fehlt. Deshalb sollte man genau drauf achten, was man da geschrieben hat.
Aber das Versteht sich eigentlich bei allen Bereichen der Programmierung, oder??


' Webseite im Standardbrowser öffnen
ShellExecute Me.hWnd, "Open", "http://www.vbwelt.de/", "", "", 1&
' eMail-Client mit angegebener eMail-Adresse öffnen
ShellExecute Me.hWnd, "Open", "mailto:wolfgang@vbwelt.de", "", "", 1&


Bei eMails möcht man manchmal gleich die Betreffzeile oder sogar den Text vorgeben.
Dies geht, wird aber nicht von jedem eMail-Client unterstützt.

Wenn man es dennoch mal probieren will, dann muss ein Schlüsselwort an den Namen gehängt werden: Das erste Schlüsselwort wird dabei mit "?" eingeleitet, zum Trennen der einzelnen Schlüsselwörter ist dann "&" vorgesehen.

Folgende Schlüsselwörter gibt es:
  CC : Weitere - Empfänger
  BCC : Blind Copy - Empfänger
  Subject : Betreffzeile
  Body : Inahlt der eMail

Die Möglichkeit Dateianhänge mitzugeben tut bei den wenigsten eMail-Clients.
Der Aufruf mit einer "vollwertigen" eMail-Adresse sieht dann ca. so aus:


ShellExecute Me.hWnd, "Open", "mailto:wolfgang@vbwelt.de?subject=Hallo Wolfgang&bcc=goran@vbwelt.de&cc=zoran@vbwelt.de&body=Hallo,%0D%0Aich+hab+da+eine+Frage..", "", "", 1&


Denkt aber dran, dass der Platz begrenzt ist. Eine komplette eMail kann man so kaum schreiben!
Auch sollte man nicht vergessen, dass man für Umlaute und Sonderzeichen den Hexcode angeben muß (zB: %0D%0A = Return, %20 oder + = Leerzeichen)