Seite 1 von 1
Requester Handle?
Verfasst: 30.11.2004 20:43
von Lukaso
Hallo,
wie bekomme ich die Window-Handle/ID vom gerade geöffneten Save/Path/OpenRequester? Desweiteren möchte ich Fragen, ob es den PathRequester auch ohne "Neuen Ordner" erstellen Button gibt?
Danke
Lukaso
Verfasst: 01.12.2004 02:35
von ts-soft
zu PathRequester:
Code: Alles auswählen
Procedure.s MyPathRequester(Titel.s, FileFlag.l, pidlFolder.l)
Folder.s = Space(#MAX_PATH)
Dir.BROWSEINFO
Dir\hwndOwner = GetActiveWindow_()
Dir\pidlRoot = pidlFolder
Dir\pszDisplayName = @Folder
Dir\lpszTitle = @Titel
If FileFlag
Dir\ulFlags = #BIF_BROWSEINCLUDEFILES
Else
Dir\ulFlags = #BIF_RETURNONLYFSDIRS
EndIf
Dir\lpfn = 0
Dir\lParam = 0
Dir\iImage = 0
result.l = SHBrowseForFolder_(@Dir)
SHGetPathFromIDList_(result, @Folder)
If Folder <> ""
If FileSize(Folder) = - 2
If Right(Folder, 1) <> "\" : Folder + "\" : EndIf
EndIf
EndIf
CoTaskMemFree_(result)
ProcedureReturn Folder
EndProcedure
FileFlag = 1, es werden auch Dateien angezeigt. Default = 0 (nur Ordner)
pidlFolder = Konstante für Startordner ( suche nach GetSpecialeFolderlocation o. ä.)
Default = #CSIDL_DRIVES = 17
Nachtrag: Habe ich aus meiner persönl. Lib kopiert. Diese Unterstützt auch optionale Parameter. Eventuell sind ein oder zwei Zeilen überflüssig
Verfasst: 01.12.2004 12:22
von ts-soft
Hier noch mal in gekürzter Form:
Code: Alles auswählen
Procedure.s MyPathRequester(Titel.s)
Folder.s = Space(#MAX_PATH)
Dir.BROWSEINFO
Dir\hwndOwner = GetActiveWindow_()
Dir\pidlRoot = 17
Dir\pszDisplayName = @Folder
Dir\lpszTitle = @Titel
Dir\ulFlags = #BIF_RETURNONLYFSDIRS
result.l = SHBrowseForFolder_(@Dir)
SHGetPathFromIDList_(result, @Folder)
If Right(Folder, 1) <> "\" : Folder + "\" : EndIf
CoTaskMemFree_(result)
ProcedureReturn Folder
EndProcedure
Verfasst: 01.12.2004 18:11
von Lukaso
Danke
Funtzt bestens!