Domino 9 und frühere Versionen > Entwicklung
Start Windows Media + markiertes Dok
aba:
Hallo Forum,
ich würde gerne einem Button so programmieren, das ich dann die Möglichkeit habe, Anhänge mit den Endungen .mp3 und .wav nur markieren muß und wenn ich dann diesen Button betätige, das dann diese Datei in einem dafür vorgesehenen Programm z.B. Windows Media Player gestartet wird.
Jetzt werden vielen denken. Was will er den jetzt. Einfach Anhang starten und los geht es mit der Datei im Mediaplayer. Das weiß ich natürlich auch aber ich habe eine Anwendung, wo ich das so machen muß.
Also soviel "@Command( [Execute]; "C:\\Programme\\Windows Media Player\\mplayer2.exe" )" hab ich schon. nur wie startet er mir dann automatisch den markierten Anhang???
Danke im voraus für Eure Unterstützung!!!
Gruss Arnd
Axel:
Hi,
du musst den Anhang in ein Verzeichnis auf der Platte lösen und dann dem Programm als Parameter übergeben.
Das geht allerdings nur mit Script.
Axel
TMC:
Hi Aba,
hier ein Script, dass alle Anhänge im Richtextfeld "Body" automatisch startet (mit der entsprechenden verknüpften Windows-Anwendung):
--- Code: ---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
--- Ende Code ---
Declarations:
--- Code: ---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
--- Ende Code ---
Matthias
TMC:
ups, habe noch die WinTemp-Function vergessen (der Temp-Verz.-Code ist kürzlich dank der Hilfe vom Forum entstanden :-))
--- Code: ---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
--- Ende Code ---
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
animate:
hier müsste das zu finden sein:
http://www-10.lotus.com/ldd/sandbox.nsf/ByApplicationTypeNJ/c9ce556cec59109a85256a0e0057e3af?OpenDocument
weiß jetzt leider nicht mehtr genau, ob die Gestaltung sichtbar ist.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln