ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 08.11.2001

Diese Seite wurde zuletzt aktualisiert am 08.11.2001
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Das ausführende Organ

Zurück...


Anzeige

(-hg) mailto:hg_getexecutable@aboutvb.de

Für die meisten Dateitypen gibt es eine Standard-Anwendung, die beispielsweise beim (Doppel)Klick auf eine Datei (auf ein "Dokument") dieses Typs im Explorer (oder von der API-Funktion ShellExecute bzw. ShellExecuteEx) mit dieser Datei gestartet wird. Wenn Sie diese Anwendung und den Pfad zu ihr in Erfahrung bringen möchten, hilft Ihnen die Shell-API-Funktion FindExecutable.

Private Declare Function FindExecutable Lib "shell32.dll" _
 Alias "FindExecutableA" (ByVal lpFile As String, _
 ByVal lpDirectory As String, ByVal lpResult As String) As Long

Sie übergeben ihr im ersten Parameter den Namen eines Dokuments, wobei der Name gleich eine vollständige Pfadangabe darstellen kann. Sie können aber auch lediglich den reinen Dokumentnamen übergeben und den Pfad im zweiten Parameter nachreichen. Im dritten Parameter übergeben Sie einen mindestens 255 (Leer-)Zeichen langen String. Nach dem Aufruf der Funktion wird Ihnen in diesem String der Pfad zur Standard-Anwendung des Dokuments zurück gegeben. Das Ende des Pfad wird durch ein Nullzeichen (Chr$(0)) markiert - mit Hilfe der Left$-Funktion und einer weiteren API-Funktion (InStrNullChar, siehe auch "Null-Schneider") schneiden Sie den Rest des Strings ab dieser Stelle ab. Konnte die Datei nicht gefunden werden, gibt FindExecutable den Fehlerwert 2 zurück, existiert keine Standard-Anwendung zu dem Dokument, gibt sie den Fehlerwert 31 zurück.

Die folgende Funktion GetExecutable verpackt den Aufruf. Auch hier können Sie im ersten Parameter den kompletten Pfad zu einem Dokument oder den Dokument-Namen alleine und im zweiten Parameter den Pfad dazu angeben. Im optionalen dritten Parameter geben Sie an, ob ein abfangbarer Laufzeitfehler ausgelöst werden soll, wenn FindExecutable einen Fehlerwert zurückgibt, oder ob einfach nur ein leerer String zurück gegeben werden soll.

Private Declare Function FindExecutable Lib "shell32.dll" _
 Alias "FindExecutableA" (ByVal lpFile As String, _
 ByVal lpDirectory As String, ByVal lpResult As String) As Long
Private Declare Function InStrNullChar Lib "kernel32.dll" _
 Alias "lstrlenA" (ByVal lpString As Any) As Long

Public Enum GetExecErrorConstants
  geErrFileNotFound = 2
  geErrNoAssociation = 31
End Enum

Public Function GetExecutable(Document As String, _
 Optional Path As String, _
 Optional ByVal RaiseErr As Boolean) As String

  Dim nExecutable As String * 255
  Dim nRet As Long
  
  nRet = FindExecutable(Document, Path, nExecutable)
  Select Case nRet
    Case geErrFileNotFound, geErrNoAssociation
      If RaiseErr Then
        Err.Raise nRet
      End If
    Case Else
      GetExecutable = Left$(nExecutable, InStrNullChar(nExecutable))
  End Select
End Function

Modul modGetExecutable (modGetExecutable.bas - ca. 1,1 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche




Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer