Requester Handle?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Requester Handle?

Beitrag 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
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Beitrag von Lukaso »

Danke :allright:

Funtzt bestens!
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Antworten