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 49.487 mal aufgerufen.
Anzeige
![]() ![]() ![]() (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. |
vb@rchiv CD Vol.6 ![]() ![]() Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats ![]() Matthias Kozlowski Umlaute konvertieren Ersetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) TOP! Unser Nr. 1 ![]() Neu! sevDataGrid 3.0 Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. |
||||||||||||||||
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. |