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 :allright:

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 :allright:

Funtzt bestens!