vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2019
 
zurück
Rubrik: OLE/Registry/DLL · Verknüpfungen   |   VB-Versionen: VB.NET25.10.06
Verknüpfte Anwendung finden (.NET)

Mit dieser Funktion lässt sich die im System zu einem bestimmten Dokument verknüpfte Anwendung ermitteln.

Autor:   Michael SchoberBewertung:     [ Jetzt bewerten ]Views:  9.656 
ohne HomepageSystem:  WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

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 9.656 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!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.
 
   

Druckansicht Druckansicht Copyright ©2000-2019 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel