Kontakt
DSVGO
Historie | |
14.06.2001 | Optionale Angabe der durchzuführenden Operation |
03.05.2001 | Vereinfachte OpenMail-Funktion |
30.10.2000 | Beispiele hinzugefügt |
14.07.2000 | Erste Version |
Die unten vorgestellte Funktion ShellExec ermöglicht es, eine gegebene Datei (z.B. "c:\test\xyz.doc") automatisch in das dazugehörige Programm (im Beispiel: MS Word) zu laden. Optional kann auch eine andere Operation angegeben werden, um z.B. das angegebene Dokument zu drucken (Operation = "print"). Die Routine gibt übrigens genau dann True zurück, wenn der Versuch erfolgreich ist.
Die darauf aufbauende Funktion OpenMail dient für den komfortablen Versand einer eMail. Als Parameter können neben der Zieladresse auch der Betreff (empfehlenswert), die Kopie-Empfänger, sowie der Mail-Text angegeben werden.
Dieses Statement lädt das angegebene Dokument in das dazugehörige Programm (also wahrscheinlich MS Word):
ShellExec "C:\test\xyz.doc"
Dagegen wird hier das Dokument einfach ausgedruckt:
ShellExec "C:\test\xyz.doc", , "print"
Hier wird der Default-WebBrowser im Vollbild-Modus gestartet, wobei die angegebene URL angezeigt wird (übrigens eine sehr gute Adresse... ):
ShellExec "http://www.schwider.de/", vbMaximizedFocus
Diese Zeile startet das Default-Mail-Programm:
ShellExec "mailto:test@vb-tec.de?Subject=Blabla"
Weitere interessante Infos dazu gibt es übrigens hier: MailTo-Links.
Die folgende Funktion benutzt die o.g. MailTo-Möglichkeit, um komfortabel den Versand einer eMail vorzubereiten. Damit Sonderzeichen keine Schwierigkeiten beim Versand machen, werden diese mit der in Codieren von Strings fürs Web vorgestellten Methode "entschärft".
Function OpenMail(MailTo As String, _ Optional Subject As String, _ Optional CC As String, _ Optional BCC As String, _ Optional Body As String _ ) As Boolean Dim Param As String 'Ggf. optionale Parameter anhängen: If Len(Subject) Then _ Param = "?Subject=" & URLPathEncode(Subject) If Len(CC) Then _ Param = Param & "&CC=" & CC If Len(BCC) Then _ Param = Param & "&BCC=" & BCC If Len(Body) Then _ Param = Param & "&Body=" & URLPathEncode(Body) 'MailTo-Link "ausführen": If Len(Param) Then Mid$(Param, 1) = "?" OpenMail = ShellExec("mailto:" & MailTo & Param) End Function
Das o.g. letzte Beispiel kann mit dieser Funktion dann auch einfacher so geschrieben werden:
OpenMail "test@vb-tec.de", "Blabla"
Die folgende Zeile muss im Deklarationsteil eines Moduls stehen:
Private Declare Function ShellExecuteA Lib "shell32.dll" ( _ 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
Die eigentliche Funktion ist eine einfache Kapsel um den API-Aufruf:
Function ShellExec( _ ByVal Path As String, _ Optional ByVal WindowStyle As VbAppWinStyle = vbNormalFocus, _ Optional ByVal Operation As String = "open" _ ) As Boolean ShellExec = ( _ ShellExecuteA(0&, Operation, Path, _ vbNullString, vbNullString, WindowStyle) > 32) End Function
© Jost Schwider, 14.07.2000-14.06.2001 - http://vb-tec.de/shellexe.htm