2
www.ChF-Online.de  

Datei mit verkn. Programm öffnen

   Neuigkeiten
   API-Aufrufe in VBA
aktiv aktiv Belieb. Datei öffnen
 CommonDialog-Fehler
 Dateidatum lesen & setzen
 rel. Dateipfad korrigieren
 Flex. Öffnen-Dialog
 Flex. Speichern-Dialog
 Kurze Unterbrechung
 Pfade und Verzeichnisse
 Spracheinstellung
 TreeView löschen
 Verzeichnisauswahl
 Verzeichnisauswahl /UNC
   VBA2HTML
   Word
   Word-VBA
   Word2007 (RibbonX)
   Word2010 (RibbonX)
   Outlook-VBA
   Links zu VB(A)
   DocToHelp
   Netport Express XL
   Astronomie
   Gästebuch
   Volltextsuche
   Sitemap
   Buch:Word-Programmierung
   Impressum & Kontakt
   Datenschutzerklärung
Getestet unter Word2000Getestet unter WordXPGetestet unter Win2000  
Makro/Datei speichern
Print

Eine häufig gestellte Frage bezieht sich auf den Aufruf einer beliebigen Datei mit dem assoziierten (verknüpften) Programm. Dieses lässt sich z.B. über die Registry ermitteln, jedoch variiert der Installationspfad und auch das Programm ist nicht unbedingt auf jedem Rechner das gleiche.

An dieser Stelle bietet das API ShellExecute eine bequeme Möglichkeit, das assoziierte Programm zu ermitteln und die Datei mit diesem Programm direkt zu öffnen.

Für den Programmstart werden nicht alle API-Parameter benötigt, wichtig sind nur die Angaben der Datei-Operation (lpOperation) und des Dateinamens (lpFile). Der Parameter ShowTypeEnum bestimmt dann, wie die Datei angezeigt werden soll.

Der eigentliche Dateiaufruf erfolgt dann unter Angabe des Dateinamens und des Anzeigetype ShowTypeEnum
Bei einem fehlerfreien Dateiaufruf wird der Wert 42 zurückgegeben; sollte zu der Datei kein assoziiertes Programm existieren, gibt der API-Aufruf den Fehlercode 31 zurück.

Sub Dateianzeige()  
Dim sDatei, Err
sDatei = "C:\SymboleXP.pdf"
Err = ShellExecute(hWnd, "open", sDatei, vbNullString, vbNullString, SW_SHOW)
If Err = "31" Then 
  MsgBox "Keine Programmzuweisung gefunden."
ElseIf Err <> "42" Then 
  MsgBox "Es ist ein Fehler aufgetreten."
End If 
DoEvents 
End Sub 

Der in vielen API-Aufrufen verwendete Parameter hWnd (Window-Handle) wird unter VBA fast nie unterstützt, so dass er durch 0& (da vom Typ 'Long') ersetzt werden kann.


 Besucher: 1 online  |  35 heute  |  2396 diesen Monat  |  2149383 insgesamt | Seitenaufrufe: 80   Letzte Änderung: 24.06.2006 © 2001-18 Christian Freßdorf
  Wo die Natur nicht will, da ist die Arbeit umsonst.
Seneca
 powered by phpCMS and PAX