Hi Aba,
hier ein Script, dass alle Anhänge im Richtextfeld "Body" automatisch startet (mit der entsprechenden verknüpften Windows-Anwendung):
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim uiws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim rtitem As NotesRichTextItem
Dim doc As NotesDocument
Dim strTempdir As String
Dim strFile As String
Dim strFileToOpen As String
Dim aEmbObj As Variant
Set uidoc = uiws.CurrentDocument
Set db = session.CurrentDatabase
Set doc = uidoc.document
If uidoc.InPreviewPane Or uidoc.EditMode Then Exit Sub
Dim Ret As Long
Set rtitem = doc.getfirstItem( "Body" )
If rtitem Is Nothing Then
Exit Sub
End If
aEmbObj = rtitem.EmbeddedObjects
strTempdir = WinTemp
If Isarray(aEmbObj) Then
Forall o In aEmbObj
strFile = o.source
o.ExtractFile( strTempdir & "\" &strFile )
strFileToOpen= strTempdir & "\" & strFile
Ret = ShellExecuteAny(GetDesktopWindow, "open", strFileToOpen, Byval 0&, Byval 0&, SW_SHOWNORMAL)
End Forall
End If
Exit Sub
End Sub
Declarations:
Declare Function ShellExecuteAny Lib "shell32.dll" Alias "ShellExecuteA" _
(Byval hwnd As Long, Byval lpOperation As String, Byval lpFile As String, _
Byval lpParameters As Any, Byval lpDirectory As Any, Byval nShowCmd As Long) _
As Long
Declare Function GetDesktopWindow& Lib "user32" ()
Const SW_SHOWNORMAL = 10
Matthias
ups, habe noch die WinTemp-Function vergessen (der Temp-Verz.-Code ist kürzlich dank der Hilfe vom Forum entstanden :-))
Function WinTemp As String
Dim session As New NotesSession
Dim szNotesDataPath As String
Dim szExistsPath As String
Dim szTempPath As String
'Temp-Variable setzen
szTempPath=Environ$("Temp")
'Tmp-Variable setzen, weil Temp nicht vorhanden
If szTempPath="" Then
szTempPath=Environ$("Tmp")
End If
'Worst Case: Sowohl Temp als auch Tmp ist nicht verfügbar, daher
'nehmen wir das Datenverzeichnis von Notes: Wenn da kein 'Temp'-Verzeichnis vorhanden, dann legen wir es an
If szTempPath="" Then
szNotesDataPath = session.GetEnvironmentString("Directory",True)
szExistsPath = szNotesDataPath & "\Temp"
If Dir$(szExistsPath,16) = "" Then
Mkdir szNotesDataPath & "\Temp"
szTempPath = szNotesDataPath & "\Temp"
Else
szTempPath = szNotesDataPath & "\Temp"
End If
End If
WinTemp = szTempPath
End Function
Ich denke es dürfte nicht allzuschwierig sein, jetzt noch die Dateien mit einer bestimmten Anwendung zu öffnen. Wobei ich an Deiner Stelle eh die verknüpfte Anwendung verwenden würde wenn möglich - denn das Verzeichnis kann von User zu User abweichen.
Matthias