Oftmals muß man/möchte man wissen, mit welcher Anwendung ein bestimmter Dokumenttyp geöffnet wird, d.h. welche Anwendung im System mit diesem Dateityp verknüpft ist. Mit der nachfolgenden Funktion ist dies kein Problem. Sie übergeben der Funktion einfach das entsprechende Dokument als Parameter und die Funktion liefert dann den Dateinamen inkl. Pfad der verknüpften Anwendung zurück. Voraussetzung, dass das alles korrekt funktioniert, ist, dass das Dokument auch tatsächlich existiert. Existiert der übergebene Dateiname nicht, erstellt die Funktion eine temporäre Datei, die im Anschluß wieder gelöscht wird. Public Class Form1 ' API-Deklaration Private Declare Function FindExecutable Lib "shell32.dll" _ Alias "FindExecutableA" ( _ ByVal lpFile As String, _ ByVal lpDirectory As String, _ ByVal lpResult As String) As Integer ... Public Function GetExecApp(ByVal sFile As String) As String ' verknüpfte Anwendung finden Dim AppExec As String = New String(" "c, 255) Dim RetVal As Long Dim SWriter As System.IO.StreamWriter Dim bExists As Boolean ' Falls Datei nicht existsiert, temporär erstellen bExists = System.IO.File.Exists(sFile) If Not bExists Then sFile = Application.StartupPath & "\temp" & sFile.Substring(sFile.LastIndexOf(".")) SWriter = System.IO.File.CreateText(sFile) SWriter.Write("") SWriter.Close() End If ' API Aufruf der überprüft welche EXE mit der Dateiendung assoziiert ist RetVal = FindExecutable(sFile, vbNullString, AppExec) AppExec = AppExec.Trim ' Falls Datei temporär erstellt wurde, jetzt wieder löschen If Not bExists Then Kill(sFile) ' Überprüfen ob Dateiassoziation vorhaden If RetVal <= 32 Or AppExec = String.Empty Then Return "" Else Return (AppExec) End If End Function End Class Aufrufbeispiele: Sie möchten wissen, ob für das Öffnen von PDF-Dateien eine entsprechende Anwendung vorhanden ist? Dim sExecFile As String = GetExecApp("temp.pdf") If sExecFile.Length > 0 Then ... Sie möchten wissen, ob der Internet-Explorer der Standard-Browser ist? Dim sExecFile As String = GetExecApp("temp.htm") If sExecFile.Length > 0 Then If sExecFile.IndexOf("iexplore.exe") > 0 Then MsgBox("Standard-Browser = Internet Explorer!") End If End If Dieser Tipp wurde bereits 11.500 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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung Neu! sevDTA 3.0 Pro SEPA mit Kontonummernprüfung Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. |
||||||||||||||||
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. |