smartsuitefaq.martinholz.de

Shell-Aufruf für Dateien, Standardmailer oder -browser

Es gibt verschiedene Möglichkeiten, in Dokumenten Hyperlinks für E-Mail oder Internet Adressen zu erstellen. Auch mit LotusScript geht das relativ einfach, aber nur solange es um Objekte in einem Dokument geht, also eine Zelle, ein Bereich, ein Bild, eine Schaltfläche (so habe ich es mit 123 erlebt).

Ich wollte einen Hyperlink in einem Dialog verwenden und fand dazu in der Hilfe kaum bzw. keine verwertbaren Informationen. Es gibt zwar ein Thema "Shell function in LotusScript", das Beispiel dazu ist auch ganz hübsch und funktioniert prima, brachte mich aber leider nicht zu funktionierenden Hyperlinks:

The following example is specific to Windows:

' Start the Windows Calculator as a normal (not minimized)
' window with focus.
Dim taskId As Integer
taskId% = Shell("CALC.EXE", 1)

Im Approach Bereich unserer FAQ wurde ich dann in Artikel 18.12 fündig, dort wird gezeigt, wie der Standardmailer oder -browser aufgerufen wird. Ich habe das dann an die Bedürfnisse meines Dialoges angepaßt und es funktioniert prima.

Für E-Mail:

Sub Click(Source As Lotustextbox)
Dim taskId As Integer
taskId% = Shell("rundll32.exe url.dll,FileProtocolHandler _
mailto:schmidtrainer@gmx.de")
End Sub

Bedingt funktionsfähig ist auch der MailToProtocolHandler:

Shell("rundll32.exe url.dll,MailToProtocolHandler _
schmidtrainer@gmx.de")

Er funktioniert aber bei mir in der Firma unter NT4 mit NotesR5 nicht, somit ist FileProtocolHandler wohl besser und universeller geeignet.

bzw. für Internet URLs:

Sub Click(Source As Lotustextbox)
Dim taskId As Integer
taskId% = Shell("rundll32.exe url.dll,FileProtocolHandler _
http://faq-zur-smartsuite.bei.t-online.de/",3)
End Sub

Den Shell-Aufruf habe ich hier jeweils dem Click-Ereignis einer Lotustextbox zugeordnet, die über die Caption-Eigenschaft die E-Mail Adresse im Dialog anzeigt. Ich vermute, daß das mit anderen Dialog Objekten auch funktioniert. Ein kleines Beispiel zu den Ausführungen oben finden Sie hier: ShellBeispiel.zip

Die Hilfe sagt zur Shell-Funktion, daß man sie über einen Ausdruck (Expression) oder eine Zuordnung (Assignment) verwenden muß, damit ein Rückgabewert entsteht. Deswegen habe ich sie , wie auch im Hilfe-Beispiel, der Variablen "taskID" zugeordnet.

Kürzlich wollte ich aus Approach heraus mit dem Makro-Befehl 'Öffnen' eine 123-Datei starten, Approach war aber immer der Meinung, daß das eine Datenquelle sei und hat einen entsprechenden Dialog geöffnet. Mit einem kleinen Shell-Aufruf Script war auch dieses Problem beseitigt:

Sub Click(Source As Button, X As Long, Y As Long, Flags As Long)
x = Shell("rundll32.exe url.dll,FileProtocolHandler " & "c:\lotus\arbeit\123\test.123",1)
End Sub

Mit Win98 und WinNT4 funktionieren diese Shell-Aufruf Funktionen bei mir prima, ich weiß aber nichts über Win2000, WinXP oder gar OS/2, es nett, wenn Sie Ihre Erfahrungen damit berichten würden.

Über diesen ArtikelArtikelbewertung
Stand: 07.12.2002
Autor(en): Rainer Schmidt
Durchschnittsnote: 1.5
1 2 3 4 5 6