vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Dialog für Verzeichnisauswahl 
Autor: UserXP.dll
Datum: 05.05.05 17:15

Hi

ich bins nochmal. Ich bin jetzt an der Stelle an der ich diesen Dialog brauche. Allerdings scheint da was nicht zu funktionieren.

Jedesmal wenn ich die API-Funktion aufrufe, zeigt er einen Fehler an dass ich auch eine nicht vorhandene Objektinstanz verweise.

(Der Code stammt ursprünglich aus VB6)

Public Class DirDialogClass
 
  Public Structure BrowseInfo
    Dim hWndOwner As Long
    Dim pIDLRoot As Long
    Dim pszDisplayName As Long
    Dim lpszTitle As Long
    Dim ulFlags As Long
    Dim lpfnCallback As Long
    Dim lParam As Long
    Dim iImage As Long
  End Structure
 
  Declare Function SHBrowseForFolder Lib "shell32" (ByVal lpbi As BrowseInfo) _
    As Long
  Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, _
  ByVal lpBuffer As String) As Long
  Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As _
  String, ByVal lpString2 As String) As Long 'Verknüpfen von nullterminierten 
  ' Strings
 
  Public Const CSIDL_DRIVES = &H11&
 
  'FolderID:
  Public Const SF_ShowComputer As Long = 0 'Zeigt den gesamten Inhalt des 
  ' Computers an. (Standard)
  Public Const SF_ShowProgramme As Long = 2 'Zeigt den Ordner Programme im 
  ' Startmenü an.
  Public Const SF_ShowMyFolder As Long = 5 'Zeigt den Ordner Eigene Dateien an.
  Public Const SF_ShowFavoriten As Long = 6 'Zeigt den Ordner Favoriten an.
  Public Const SF_ShowAutostart As Long = 7 'Zeigt den Autostart-Ordner an.
  Public Const SF_ShowDokumente As Long = 8 'Zeigt den Dokumenten-Ordner an.
  Public Const SF_ShowSendTo As Long = 9 'Zeigt den SendTo-Ordner an.
  Public Const SF_ShowStartmenü As Long = 11 'Zeigt das Startmenüs an.
  Public Const SF_ShowMyMusik As Long = 13 'Zeigt den Ordner Eigene Musik an.
  Public Const SF_ShowMyVideos As Long = 14 'Zeigt den Ordner Eigene Videos an.
  Public Const SF_ShowDesktop As Long = 16 'Zeigt den Inhalt des Desktops an.
  Public Const SF_ShowLaufwerke As Long = 17 'Zeigt die Laufwerke des Computers 
  ' an.
  Public Const SF_ShowMyNet As Long = 18 'Zeigt den Inhalt der Netzwerkumgebung 
  ' an.
  Public Const SF_ShowFonts As Long = 20 'Zeigt den Ordner Fonts (Schriftarten) 
  ' an.
  Public Const SF_ShowAnwedungsdaten As Long = 26 'Zeigt den Ordner 
  ' Anwendungsdaten an. (Dateien lassen sich nicht anzeigen!)
 
  'Flags:
  Public Const SF_BrowseForComputer As Long = &H1000 'Nur Computer als Auswahl 
  ' erlauben.
  Public Const SF_BrowseForPrinter As Long = &H2000  'Nur Drucker als Auswahl 
  ' erlauben.
  Public Const SF_BrowseForFiles As Long = &H4000 + &H1 'Der Dialog zeigt neben 
  ' den Ordnern auch Dateien.
  Public Const SF_DONTGOBELOWDOMAIN As Long = &H2  'Der Dialog zeigt keine 
  ' Netzwerkordner unterhalb der aktuellen Domain.
  Public Const SF_RETURNFSANCESTORS As Long = &H8  'Nur Dateisystemobjekte als 
  ' Auswahl erlauben.
  Public Const SF_RETURNONLYFSDIRS As Long = &H1  'Nur Dateisystemordner als 
  ' Auswahl erlauben.
  Public Const SF_STATUSTEXT As Long = &H4  'Der Dialog enthält eine 
  ' Statuszeile. Die Rückruffunktion kann die Statuszeile ausfüllen.
 
  'Zeigt den Dialog an. Wenn Abbrechen gedrückt wurde
  'wird ein leerer String-Wert zurückgegeben
  Function SelectFolder(ByVal Owner As Form, Optional ByVal Prompt As String = _
    "Bitte geben Sie ein Verzeichnis an.", Optional ByVal FolderID As Long = _
    SF_ShowComputer, Optional ByVal Flags As Long = SF_RETURNONLYFSDIRS) As _
    String
    Dim BInfo As BrowseInfo
    Dim DlgTitle As String
    Dim pid As Long
    Dim SelPath As String
    Dim Dummy As Boolean
 
    'Prüfe FolderID:
    Dummy = False
    Select Case FolderID
      Case 0, 2, 5, 6, 7, 8, 9, 11, 13, 14, 16, 17, 18, 20, 26 '<- Nur diese 
      ' Werte werden zugelassen!
        Dummy = True
    End Select
    If Dummy = False Then
      'MsgBox "Falscher Wert der FolderID!", vbCritical
      'Exit Function
    End If
 
    With BInfo
      .hWndOwner = Owner.Handle.ToInt32
      .pIDLRoot = FolderID
      .lpszTitle = lstrcat(Prompt, "") 'Titel des Dialoges
      If Flags = 0 Then .ulFlags = 1 Else .ulFlags = Flags 'Nur 
      ' Dateisystemordner erlaubt
    End With
 
    pid = SHBrowseForFolder(BInfo) '<--------------- HIER TRITT DER FEHLER AUF 
    ' ----------
 
    If pid Then
      SelPath = Space(255)
      Call SHGetPathFromIDList(pid, SelPath)
      SelPath = Left(SelPath, InStr(SelPath, Chr(0)) - 1)
    Else
      SelPath = ""
    End If
    SelectFolder = SelPath
  End Function
 
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Dialog für Verzeichnisauswahl1.598UserXP.dll23.04.05 15:47
Re: Dialog für Verzeichnisauswahl1.188ModeratorDaveS23.04.05 17:27
Re: Dialog für Verzeichnisauswahl1.204UserXP.dll23.04.05 18:07
Re: Dialog für Verzeichnisauswahl1.123Moderatorralf_oop23.04.05 19:42
Re: Dialog für Verzeichnisauswahl1.095UserXP.dll24.04.05 10:21
Re: Dialog für Verzeichnisauswahl1.129Moderatorralf_oop24.04.05 13:43
Re: Dialog für Verzeichnisauswahl1.721UserXP.dll05.05.05 17:15
Re: Dialog für Verzeichnisauswahl1.253LarsThorwald05.05.05 17:56
Re: Dialog für Verzeichnisauswahl1.139UserXP.dll07.05.05 15:47
Re: Dialog für Verzeichnisauswahl1.098DocMedic23.08.05 14:53
Re: Dialog für Verzeichnisauswahl1.114Vento23.08.05 15:05
Re: Dialog für Verzeichnisauswahl1.167havok23.08.05 15:05
Re: Dialog für Verzeichnisauswahl1.087DocMedic23.08.05 15:11

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 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