Bekanntlich wird beim Doppelklicken auf eine Datei entweder diese direkt ausgeführt (falls es sich um eine EXE- oder eben ausführbare Datei handelt) oder es wird die zu dieser Datei im System gespeicherte verknüpfte Anwendung geöffnet und die Datei dann als Parameter an die Anwendung übergeben (z.B. wird eine .doc-Datei autom. mit WordPad oder MS-Word geöffnet). Ist dem System der Dateityp nicht bekannt, so zeigt Windows von Haus aus den Verknüpfungs-Dialog (Öffnen mit...) an. Genau dieses Verhalten können auch Sie in Ihre eigenenen Anwendungen integrieren. Der nachfolgende Tipp zeigt wie's geht. ' zunächst die benötigten API-Deklarationen Private Declare Function ShellExecute Lib "shell32.dll" _ Alias "ShellExecuteA" ( _ ByVal hWnd As Long, _ ByVal lOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Private Declare Function GetSystemDirectory Lib "kernel32" _ Alias "GetSystemDirectoryA" ( _ ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Private Declare Function GetDesktopWindow Lib "user32" () As Long Private Const SE_ERR_NOASSOC = 31 Private Const SE_ERR_NOTFOUND = 2 ' Dokument öffnen und ggf. autom. den ' "Öffnen mit..." - Dialog anzeigen Private Sub DocumentOpen(sFilename As String) Dim sDirectory As String Dim lRet As Long Dim DeskWin As Long DeskWin = GetDesktopWindow() lRet = ShellExecute(DeskWin, "open", sFilename, _ vbNullString, vbNullString, vbNormalFocus) If lRet = SE_ERR_NOTFOUND Then ' Datei nicht gefunden ElseIf lRet = SE_ERR_NOASSOC Then ' Wenn die Dateierweiterung noch nicht bekannt ist... ' wird der "Öffnen mit..."-Dialog angezeigt. sDirectory = Space(260) lRet = GetSystemDirectory(sDirectory, Len(sDirectory)) sDirectory = Left(sDirectory, lRet) Call ShellExecute(DeskWin, vbNullString, _ "RUNDLL32.EXE", "shell32.dll,OpenAs_RunDLL " & _ sFilename, sDirectory, vbNormalFocus) End If End Sub Beispielsaufruf DocumentOpen App.Path & "\test.dat" Dieser Tipp wurde bereits 31.682 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv (einschl. Beispielprojekt!) Ein absolutes Muss - Mehr als 650 MByte geballtes Wissen! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - Online-Update-Funktion u.v.m. |
Unser Dauerbrenner! ![]() 650 MB geballtes Wissen aus 6 Jahren vb@rchiv Online-Update-Funktion Entwickler-Vollversionen u.v.m. Buchempfehlung Tipp des Monats Dieter Otter Snapshot einer Webseite erstellen Mit dieser Funktion lässt sich ein Snapshot einer Webseite erstellen, die aktuell im WebBrowser-Control angezeigt wird. sevMail für VB/VBA ![]() Mails abrufen und senden - ganz easy :-) Mailversand mit ZIP-Funktion, Unterstützung von SMTP-AUTH (authentifizierter Mailversand), Abholen von Mails mit Vorschau, Mail-Parser zum Decodieren aller MIME-Parts und Anlagen, RTF2HTML-Funktion u.v.m. |
||||||||||||||||
|
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |
|||||||||||||||||


"Öffnen mit..."-Dialog bei Bedarf autom. anzeigen



