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 48.683 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevOutBar 4.0 Vertikale Menüleisten á la Outlook Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |