vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 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/System26.07.01
GetOpenFileName-Funktion

Diese Funktion ruft den Standard Windows-Dialog zum Öffnen einer Datei auf.

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

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 GetOpenFileName Lib "comdlg32.dll" _
      Alias "GetOpenFileNameA" ( _
      lpofn As OPENFILENAME) As Long

    Beschreibung:
    Diese Funktion ruft den Standard Windows-Dialog zum Öffnen einer Datei auf.

    Parameter:
    lpofnErwartet eine OPENFILENAME-Struktur.

    Rückgabewert:
    Bei erfolgreichem Funktionsaufruf wird ein Wert ungleich 0 zurückgegeben. Anderfalls ist der Rückgabewert 0.


    Beispiel:

    ' Fügen Sie nachfolgenden Code in ein Modul ein.
     
    Private Const WM_INITDIALOG = &H110
    Private Const WM_DESTROY = &H2
    Private Const WM_HELP = &H53
    ' Die Hook-Fuktion empfängt alle Ereignisse des Dialogs
    Public Function HookFunc(ByVal hdlg As Long, ByVal uiMsg As Long, _
      ByVal wParam As Long, ByVal lParam As Long) As Long
     
      Select Case uiMsg
        Case WM_INITDIALOG
          Debug.Print "Der Dialog wird Initialisiert"
     
        Case WM_HELP
          Debug.Print "Die Hilfe wurde aufgerufen"
          MsgBox "Es ist keine Hilfe verfügbar"
     
        Case WM_DESTROY
          Debug.Print "Der Dialog wird geschlossen"
     
        Case Else
     
      End Select
     
      ' Nicht vergessen! Im schlimmsten Fall reagiert der
      ' Dialog sonst nicht mehr
      HookFunc = uiMsg
    End Function
    ' Dient zum Ermitteln der Adresse der Hook-Funktion
    Public Function GetAddress(ByVal Address As Long) As Long
      GetAddress = Address
    End Function
    ' ================================================================
     
     
    ' Fügen Sie nnachfolgenden Code in das Codefenster einer Form
     
    Private Declare Function GetOpenFileName Lib "comdlg32.dll" _
      Alias "GetOpenFileNameA" ( _
      lpofn As OPENFILENAME) As Long
     
    Private Type OPENFILENAME
      lStructSize As Long
      hwndOwner As Long
      hInstance As Long
      lpstrFilter As String
      lpstrCustomFilter As String
      nMaxCustomFilter As Long
      nFilterIndex As Long
      lpstrFile As String
      nMaxFile As Long
      lpstrFileTitle As String
      nMaxFileTitle As Long
      lpstrInitialDir As String
      lpstrTitle As String
      flags As Long
      nFileOffset As Integer
      nFileExtension As Integer
      lpstrDefExt As String
      lCustData As Long
      lpfnHook As Long
      lpTemplateName As String
    End Type
     
    ' Zeigt ein Dialogfeld mit der Möglichkeit, mehrere Dateien
    ' auszuwählen. In diesem Fall enthält lpstrFile den Pfad und 
    ' anschließend alle Dateinamen.
    ' nFileOffset zeigt auf den Index des ersten Dateinamens nach
    ' der Pfadangabe.
    ' lpstrFile enthält alle Dateinamen durch Chr$(0) getrennt.
    ' Am Ende folgt ein zweites Chr$(0). Bei alten Win-3.x-
    ' Dialoge) sind die Dateinamen durch Leerzeichen getrennt.
    ' Diese Variante kennt keine langen Dateinamen.
    Private Const OFN_ALLOWMULTISELECT = &H200
     
    ' Zeigt eine Meldung, wenn die Datei nicht existiert und
    ' fragt den Anwender, ob sie erzeugt werden soll.
    Private Const OFN_CREATEPROMPT = &H2000
     
    ' Aktiviert die Rückruffunktion lpfnHook.
    Private Const OFN_ENABLEHOOK = &H20
     
    ' Aktiviert die Dialogfeldvorlage.
    Private Const OFN_ENABLETEMPLATE = &H40
     
    ' Aktiviert die Dialogfeldvorlage.
    Private Const OFN_ENABLETEMPLATEHANDLE = &H80
     
    ' Nutzt Explorer-Dialoge. Diese Einstellung ist die Vorgabe, 
    ' selbst wenn Sie dieses Flag nicht angeben. Für alte
    ' Win-3.x-Dialoge müssen Sie das Flag löschen.
    ' Sie müssen es in den folgenden Fällen setzen:
    ' - bei OFN_ALLOWMULTISELECT.
    ' - wenn Sie Dialogfeldvorlagen und Rückruffunktionen benutzen.
    Private Const OFN_EXPLORER = &H80000
     
    ' Gibt an, dass der Anwender einen Dateinamen mit einer
    ' anderen Erweiterung als lpstrDefExt eingeben kann.
    Private Const OFN_EXTENSIONDIFFERENT = &H400&
     
    ' Gibt an, dass der Anwender nur die Namen von existierenden
    ' Dateien eingeben kann. Andernfalls wird eine Warnmeldung
    ' ausgegeben.
    ' OFN_PATHMUSTEXIST muß ebenfalls gesetzt werden.
    Private Const OFN_FILEMUSTEXIST = &H1000
     
    ' Versteckt das Kontrollkästchen "Nur lesen".
    Private Const OFN_HIDEREADONLY = &H4&
     
    ' Aktiviert die Unterstützung von langen Dateinamen in den
    ' alten Win-3.x-Dialogen.
    Private Const OFN_LONGNAMES = &H200000
     
    ' Stellt das ursprüngliche Verzeichnis bei Ende des Dialoges
    ' wieder her, wenn der Anwender anderes Verzeichnis
    ' eingestellt hat.
    Private Const OFN_NOCHANGEDIR = &H8&
     
    ' Weist das Dialogfeld an, bei einer markierten Verknüpfung
    ' Namen und Pfad der Verknüpungsdatei zurückzugeben, anstatt
    ' Namen und Pfad der Datei, auf die die Verknüpfung verweist.
    Private Const OFN_NODEREFERENCELINKS = &H100000
     
    ' Deaktiviert die Unterstützung von langen Dateinamen in den
    ' alten Win-3.x-Dialogen.
    Private Const OFN_NOLONGNAMES = &H40000
     
    ' Versteckt die Schaltfläche "Netzwerk".
    Private Const OFN_NONETWORKBUTTON = &H20000
     
    ' Gibt an, dass keine Testdatei erzeugt wird, bevor der
    ' Dialog endet. In diesem Fall überprüft das Dialogfeld nicht
    ' auf Schreibschutz, Platzmangel auf dem Datenträger oder
    ' korrekten Netzwerkzugriff.
    Private Const OFN_NOTESTFILECREATE = &H10000
     
    ' Gibt im Dialog "Speichern" eine Warnmeldung aus, wenn die
    ' Datei bereits existiert und durch das Speichern
    ' überschrieben wird.
    Private Const OFN_OVERWRITEPROMPT = &H2&
     
    ' Gibt an, dass der Anwender nur die Namen von existierenden
    ' Verzeichnissen eingeben kann. Andernfalls wird eine
    ' Warnmeldung ausgegeben.
    Private Const OFN_PATHMUSTEXIST = &H800
     
    ' Gibt an, das das Kontrollkästchen "Nur Lesen" angekreuzt
    ' ist, wenn der Dialog angezeigt wird.
    Private Const OFN_READONLY = &H1
     
    ' Gibt an, dass die Funktion fehlschlägt, wenn ein
    ' Netzwerkfehler auftritt.
    Private Const OFN_SHAREAWARE = &H4000
     
    Private Const OFN_SHAREFALLTHROUGH = 2
    Private Const OFN_SHAREWARN = 0
    Private Const OFN_SHARENOWARN = 1
     
    ' Zeigt im Dialogfeld den Hilfe-Schalter an. hwndOwner muß auf
     
    ' ein Fenster zeigen, das die Hilfe anzeigen kann. Explorer-
    ' Dialoge senden die Nachricht CDN_HELP an die Rückruffunktion.
    Private Const OFN_SHOWHELP = &H10
    ' Datei-Auswahl anzeigen
    Private Sub Command1_Click()
      Dim Retval As Long
      Static OF As OPENFILENAME
     
      With OF
        .lStructSize = Len(OF)
        .hInstance = App.hInstance
        .hwndOwner = Me.hWnd
        .flags = OFN_FILEMUSTEXIST Or OFN_OVERWRITEPROMPT Or _
          OFN_EXPLORER Or OFN_ENABLEHOOK Or OFN_SHOWHELP
        .lpstrTitle = "Datei Öffnen" & vbNullChar
        .lpstrFilter = "Textdatei" & vbNullChar & "*.txt" & _
          vbNullChar & "Word-Dokument" & vbNullChar & "*.doc" & _
          vbNullChar & vbNullChar
        .nFilterIndex = 1
        .lpstrFile = Space(256) & vbNullChar
        .nMaxFile = Len(.lpstrFile)
        .lpstrFileTitle = Space(256) & vbNullChar
        .nMaxFileTitle = Len(.lpstrFileTitle)
        .lpstrInitialDir = "C:\" & vbNullChar
     
        ' Der folgende Code gibt ein Beispiel über die Hook-Funktion (Call Back)
        ' Übergeben sie hier eine 0 wenn sie die Ereignisse des Dialogs nicht  _
        ' "abfangen" möchten.
        .lpfnHook = GetAddress(AddressOf HookFunc)
      End With
      Retval = GetOpenFileName(OF)
     
      If Retval = 0 Then
        MsgBox "Fehler beim Öffnen des Dialoges oder Klick auf " & _
          "'Abbrechen'", vbInformation, "Fehler"
        Exit Sub
      End If
     
      MsgBox "Gewählte Datei: " & OF.lpstrFileTitle
    End Sub

    Diese Seite wurde bereits 17.903 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