vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 2.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2015
 
zurück
Rubrik: Windows/System13.07.01
ShellExecute-Funktion

Startet eine Anwendung oder ein Dokument mit der verknüpften Anwendung, wobei man noch den Start- und Fenstermodus festlegen kann.

Betriebssystem:  Win95, Win98, WinNT 3.1, Win2000, WinMEViews:  61.921 

Summer-Special bei Tools & Components!
Gute Laune Sommer bei Tools & Components
Top Summer-Special - Sparen Sie teilweise über 100,- EUR
Alle sev-Entwicklerkomponenten und Komplettpakete jetzt bis zu 25% reduziert!
zum Beispiel:
  • Developer CD nur 455,- EUR statt 569,- EUR
  • sevDTA 2.0 nur 224,30 EUR statt 299,- EUR
  •  
  • vb@rchiv   Vol.6 nur 18,70 EUR statt 24,95 EUR
  • sevCoolbar 3.0 nur 58,70 EUR statt 69,- EUR
  • - Werbung -Und viele weitere Angebote           Aktionspreise nur für kurze Zeit gültig

    Deklaration:

    Declare Function ShellExecute Lib "shell32.dll" _
      Alias "ShellExecuteA" ( _
      ByVal hwnd As Long, _
      ByVal lpOperation As String, _
      ByVal lpFile As String, _
      ByVal lpParameters As String, _
      ByVal lpDirectory As String, _
      ByVal nShowCmd As Long) As Long

    Beschreibung:
    Diese Funktion startet eine Anwendung oder ein Dokument mit der verknüpften Anwendung, wobei man noch den Start- und Fenstermodus festlegen kann.

    Parameter:
    hwndHandle des aufrufenden Fensters
    lpOperationErwartet eine Zeichenfolge, die beschreibt, welche Operation ausgeführt werden soll. Bei diesen Operationen handelt es sich um Befehle, die in der Windows-Registry stehen und auch im Kontextmenü der Datei im Windows-Explorer zu finden sind. Wird ein leerer String übergeben, wird der Standard-Öffnenbefehl benutzt. Ist dieser Standard-Befehl nicht in der Windows-Registry vorhanden, wird die Datei mit dem "Open""-Kommando geöffnet. Unter Windows 2000 wird ebenfalls versucht das Dokument per Standard-Kommando zu öffnen. Ist kein Standard-Kommando definiert, so bedient sich Windows 2000 dem ersten Registryeintrag, welcher bei der verknüpften Datei gefunden wird. Gültige Kommandos sind die folgenden Strings.

    lpOperation Kommandos

    "edit"Verhält sich so, als würde man im Kontextmenü des Explorers auf "Bearbeiten" klicken.

    "explore"Handelt es sich bei "lpFile" um einen Verzeichnispfad, wird der Windows Explorer in Verbindung mit diesem Verzeichnis geöffnet.

    "find"Handelt es sich bei "lpFile" um einen Verzeichnispfad, wird der Windows Suchen-Dialog gestartet.

    "open"Öffnet die Datei mit dem lt. Registry verknüpften Programm.

    "print"Druckt das Dokument in Verbindung mit der verknüpften Anwendung.

    "properties"Zeigt die Verzeichnis- oder Datei-Eigenschaften
    lpFileVerzeichnisnamen, Datei oder Dokument, welches mit der verknüpften Anwendung geöffnet werden soll.
    lpParametersOptionale Angabe von zusätzlichen Aufruf-Parametern.
    lpDirectoryLegt das Arbeitsverzeichnis fest.
    nCmdShowErwartet ein Konstante, die beschreibt, wie sich das Anwendungs-Fenster berhalten soll.

    nCmdShow Konstanten:

    ' versteckt das Fenster
    Const SW_HIDE = 0
     
    ' maximiert das Fenster
    Const SW_MAXIMIZE = 3
     
    ' minmiert das Fenster
    Const SW_MINIMIZE = 6
     
    ' aktiviert das Fenster
    Const SW_NORMAL = 1
     
    ' zeigt das Fenster
    Const SW_SHOW = 5
     
    ' stellt die Fenstergröße wieder her
    Const SW_RESTORE = 9
     
    ' zeigt das Fenster an und maximiert es
    Const SW_SHOWMAXIMIZED = 3
     
    ' zeigt das Fenster an und minimiert es
    Const SW_SHOWMINIMIZED = 2
     
    ' minimiert das Fenster und aktiviert es nicht
    Const SW_SHOWMINNOACTIVE = 7
     
    ' zeigt das Fenster an, aber aktiviert es nicht
    Const SW_SHOWNA = 8
     
    ' zeigt das Fenster an ohne es zu aktivieren
    Const SW_SHOWNOACTIVATE = 4
     
    ' zeigt das Fenster und aktiviert dies
    Const SW_SHOWNORMAL = 1

    Rückgabewert:
    War der Funktionsaufruf erfolgreich, wird das Instanzhandle der gestarteten Anwendung zurückgegeben. Der Rückgabewert ist 0, wenn nicht genügend Systemressourcen zur Ausführung der Funktion vorhanden sind. Scheitert der Funktionsaufruf aus einem anderen Grund, so ist der Rückgabewert wie folgt zu interpretieren.


    Rückgabekonstanten:
    ' Datei ist keine Win32 Anwendung
    Const ERROR_BAD_FORMAT = 11&
     
    ' Zugriff verweigert
    Const SE_ERR_ACCESSDENIED = 5
     
    ' Datei-Assoziation ist unvollständig
    Const SE_ERR_ASSOCINCOMPLETE = 27
     
    ' DDE ist nicht bereit
    Const SE_ERR_DDEBUSY = 30
     
    ' DDE-Vorgang gescheitert
    Const SE_ERR_DDEFAIL = 29
     
    ' DDE-Zeitlimit wurde erreicht
    Const SE_ERR_DDETIMEOUT = 28
     
    ' benötigte DLL wurde nicht gefunden
    Const SE_ERR_DLLNOTFOUND = 32
     
    ' Datei wurde nicht gefunden
    Const SE_ERR_FNF = 2
     
    ' Datei ist nicht Assoziiert
    Const SE_ERR_NOASSOC = 31
     
    ' Nicht genügend Speicher
    Const SE_ERR_OOM = 8
     
    ' Pfad wurde nicht gefunden
    Const SE_ERR_PNF = 3
     
    ' Sharing-Verletzung
    Const SE_ERR_SHARE = 26

    Beispiel:

    Private Declare Function ShellExecute Lib "shell32.dll"Alias "ShellExecuteA" ( _
      ByVal hwnd As Long, _
      ByVal lpOperation As String, _
      ByVal lpFile As String, _
      ByVal lpParameters As String, _
      ByVal lpDirectory As String, _
      ByVal nShowCmd As Long) As Long
     
    Private Const SW_HIDE = 0
    Private Const SW_MAXIMIZE = 3
    Private Const SW_MINIMIZE = 6
    Private Const SW_NORMAL = 1
    Private Const SW_SHOW = 5
    Private Const SW_RESTORE = 9
    Private Const SW_SHOWMAXIMIZED = 3
    Private Const SW_SHOWMINIMIZED = 2
    Private Const SW_SHOWMINNOACTIVE = 7
    Private Const SW_SHOWNA = 8
    Private Const SW_SHOWNOACTIVATE = 4
    Private Const SW_SHOWNORMAL = 1
     
    Private Const ERROR_BAD_FORMAT = 11&
    Private Const SE_ERR_ACCESSDENIED = 5
    Private Const SE_ERR_ASSOCINCOMPLETE = 27
    Private Const SE_ERR_DDEBUSY = 30
    Private Const SE_ERR_DDEFAIL = 29
    Private Const SE_ERR_DDETIMEOUT = 28
    Private Const SE_ERR_DLLNOTFOUND = 32
    Private Const SE_ERR_FNF = 2
    Private Const SE_ERR_NOASSOC = 31
    Private Const SE_ERR_OOM = 8
    Private Const SE_ERR_PNF = 3
    Private Const SE_ERR_SHARE = 26
    Private Sub Command1_Click()
      Dim Retval As Long
     
      Retval = ShellExecute(Me.hwnd, "open", "C:\Windows\Notepad.exe", _
        "C:\AutoExeC.bat", "c:\", SW_SHOWNORMAL)
     
      ' Der gleiche Vorgang kann auch ausgeführt werden mittels...
      ' Retval = ShellExecute(Me.hwnd, "edit", "C:\AutoExeC.bat", "", "c:\", 'SW_SHOWNORMAL)
     
      Select Case Retval
        Case SE_ERR_NOASSOC
          MsgBox "Datei ist nicht Assizoiert", vbInformation, "Fehler"
          Exit Sub
        Case SE_ERR_PNF
          MsgBox "Pfad wurde nicht gefunden", vbInformation, "Fehler"
          Exit Sub
        Case SE_ERR_FNF
          MsgBox "Datei wurde nicht gefunden", vbInformation, "Fehler"
          Exit Sub
        Case 8, 26, 32, 28, 29, 30, 27, 5, 11 ' alle anderen Fehler
          Exit Sub
      End Select
    End Sub

    Diese Seite wurde bereits 61.921 mal aufgerufen.

    nach obenzurück
     
       

    Druckansicht Druckansicht Copyright ©2000-2015 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