CommonDialog als Pfad Selektierer ?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: CommonDialog als Pfad Selektierer ?
von: Ebeling Gebhard
Geschrieben am: 03.03.2005 17:04:48
Hallo Zusammen,
ich bin auf der Suche nach einer Möglichkeit Pfade in einem Dialog auszuwählen.
Für Dateien gibt es ja den CommonDialog, kann man den so konfigurieren das er die Auswahl von Pfaden zulässt oder gibt es da einen anderen Dialog?
CU
Gebhard

Bild

Betrifft: AW: CommonDialog als Pfad Selektierer ?
von: Nepumuk
Geschrieben am: 03.03.2005 17:46:21
Hallo Gebhard,
versuch es mal so:


Option Explicit
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As InfoT) As Long
Private Declare Function CoTaskMemFree Lib "ole32" (ByVal hMem As LongAs Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpStr1 As StringByVal lpStr2 As StringAs Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pList As LongByVal lpBuffer As StringAs Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassname As StringByVal lpWindowName As StringAs Long
Private Type InfoT
    hwnd As Long
    Root As Long
    DisplayName As Long
    Title As Long
    Flags As Long
    FName As Long
    lParam As Long
    Image As Long
End Type
Private Const BIF_RETURNONLYFSDIRS As Long = &H1
Private Const BIF_DONTGOBELOWDOMAIN As Long = &H2
Private Const BIF_RETURNFSANCESTORS As Long = &H8
Private Const BIF_RETURNONLYFSDIRSCREATENEW As Long = &H40
Private Const BIF_BROWSEFORCOMPUTER As Long = &H1000
Private Const BIF_BROWSEFORPRINTER As Long = &H2000
Private Const BIF_BROWSEINCLUDEFILES As Long = &H4000
Private Function GetAOrdner() As String
    Dim xl As InfoT, IDList As Long, RVal As Long, FolderName As String
    With xl
        .hwnd = FindWindow("xlMain", vbNullString)
        .Title = lstrcat("Bitte wählen Sie ein Verzeichnis", "")
        .Flags = BIF_RETURNONLYFSDIRS
    End With
    IDList = SHBrowseForFolder(xl)
    If IDList <> 0 Then
        FolderName = Space(256)
        RVal = SHGetPathFromIDList(IDList, FolderName)
        CoTaskMemFree (IDList)
        FolderName = Trim$(FolderName)
        FolderName = Left$(FolderName, Len(FolderName) - 1)
    End If
    GetAOrdner = FolderName
End Function
Public Sub Ordner_suchen()
    MsgBox GetAOrdner
End Sub


Gruß
Nepumuk
Bild

Betrifft: AW: CommonDialog als Pfad Selektierer ?
von: K.Rola
Geschrieben am: 03.03.2005 18:05:07
Hallo Nepumuk,
das geht auch viel einfacher, interessiert?
Gruß K.Rola
Bild

Betrifft: AW: CommonDialog als Pfad Selektierer ?
von: Nepumuk
Geschrieben am: 03.03.2005 18:12:25
Liebste K.Rola,
diesbezüglich ist mein Gehirn ein schwarzes Loch, welches alles aufsaugt was in die Nähe seines Ereignishorizontes gerät. :-)
Gruß
Nepumuk
Bild

Betrifft: AW: CommonDialog als Pfad Selektierer ?
von: Nepumuk
Geschrieben am: 03.03.2005 18:18:56
Hi K.Rola,
ich glaube jetzt zu wissen was du meinst: "Windows Script Host" Richtig?
Gruß
Nepumuk
Bild

Betrifft: CommonDialog als Pfad Selektierer über WSH
von: Ebeling Gebhard
Geschrieben am: 04.03.2005 10:15:31
Guten Morgen alle zusammen,
wie geht es denn nun einfacher? lasst mich nicht dumm sterben.
Ist der WSH die Richtige Spur?
Ich habe die Lösung zwar übernommen und sie läuft auch problemlos, da ich den Code aber nicht die Bohne verstehe bin ich beim ersten Fehler gnadenlos aufgeschmissen.
CU
Gebhard
Bild

Betrifft: AW: CommonDialog als Pfad Selektierer über WSH
von: Nepumuk
Geschrieben am: 04.03.2005 14:27:18
Hallo Gebhard,
Nein, damit kann ich einen Dateidialog aufrufen, das hatte ich verwechselt. Das ganze wird über das Shell - Objekt aufgerufen, ist aber auch nicht leserlicher wie der API - Aufruf. Den Code, den du von mir bekommen hast, setze ich seit Jahren ohne Probleme ein. Du musst also nicht befürchten, dass du in den nächsten Tagen eine Fehlermeldung bekommst.
Gruß
Nepumuk
Bild

Betrifft: AW: CommonDialog als Pfad Selektierer über WSH
von: Ebeling Gebhard
Geschrieben am: 04.03.2005 14:31:37
Gut ich probiers aus,
nochmal danke für Deine Mühe.
CU
Gebhard
Bild

Betrifft: AW: aus den FAQ
von: ransi
Geschrieben am: 03.03.2005 17:56:19
HAllo gerd
Mühsam aus den FAQ abetippt.
bei mir läufts, aber frag mich bitte nicht was dahinter steckt...
https://www.herber.de/bbs/user/19174.xls
vieleicht versteht du ja was von den API's und es hilft die weiter.
ransi
Bild

Betrifft: AW: CommonDialog als Pfad Selektierer ?
von: Ebeling Gebhard
Geschrieben am: 03.03.2005 18:04:55
1000 Dank,
es geht! Aber der Code sieht wirklich etwas eigenartig aus...
Wie kommt man auf sowas?
Sind die verwendeten Schnittstellen aus der öffentlichen WIN32 API ?

CU
Gebhard
Bild

Betrifft: AW:Nepumuk weiss sowas !
von: ransi
Geschrieben am: 03.03.2005 18:10:23
hallo Gebhard
wie ich schon sagte, "Frag mich bitte nicht..."
Die API's sind wirklich nicht meine welt !!
Aber wenn Nepumuk das hier liest ist er vielleicht so nett und erklärt uns das teil.
ransi
Bild

Betrifft: AW: AW:Nepumuk weiss sowas !
von: Nepumuk
Geschrieben am: 03.03.2005 18:15:12
Hallo Gebhard,
das sind Standard - DLL's die sich auf jedem Betriebssystem von Microsoft befinden.
Gruß
Nepumuk
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Hochkomma entfernen und nur Zellbereich auswerten"