Hallo leutz,
Hab mal ne frage gibt es einen requester mit dem man pfade oder dateien wählen kann? Wenn man eine verknüpfung unter windows ertellt kommt auch so ein fenster in dem man beides wählen kann.
Filerequester kombiniert mit openpathrequester?
- 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
Mithilfe der API-Funktion BrowseForFolder kannste das bewerkstelligen. Ob es hierzu Beispiele im CodeArchiv gibt weiß ich nicht, solltest einfach mal suchen
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.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
- 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
jazigapeda hat geschrieben:kannst du mir den syntax mal posten?
Code: Alles auswählen
Procedure.s PathRequester_with_Files(Titel.s)
Folder.s = Space(#MAX_PATH)
Dir.BROWSEINFO
Dir\hwndOwner = GetActiveWindow_()
Dir\pidlRoot = 17
Dir\pszDisplayName = @Folder
Dir\lpszTitle = @Titel
Dir\ulFlags = #BIF_BROWSEINCLUDEFILES
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
Debug PathRequester_with_Files("Nimm Dir nen Ordner oder nimm Dir nen File")
Thomas
[Edit]Nachtrag: wenn du: Dir\pidlRoot = 17 in Dir\pidlRoot = 0 änderst, kommst dem Windowsdialog noch etwas näher[/Edit]
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.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
- 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
Fall Dir die Version nicht ausreicht, hier noch eine etwas flexiblere Variante:
Viel Spaß, alles ohne jegliche Funktionsgarantie
[Edit]Habe den fehlerhaften Code nochmal Korrigiert, hoffe es funktioniert jetzt[/Edit]
Code: Alles auswählen
Procedure BrowseCallbackProc(hwnd, msg, lParam, lData)
szDir$ = Space(#MAX_PATH)
Select msg
Case #BFFM_INITIALIZED
SendMessage_(hwnd, #BFFM_SETSELECTION, #BFFM_INITIALIZED, lData)
Case #BFFM_SELCHANGED
If SHGetPathFromIDList_(lParam, @szDir$)
SendMessage_(hwnd, #BFFM_SETSTATUSTEXT, 0, @szDir$)
EndIf
EndSelect
EndProcedure
Procedure.s BrowseForFolder(Style, Titel.s, Path.s)
Folder.s = Space(#MAX_PATH)
Dir.BROWSEINFO
Dir\hwndOwner = GetActiveWindow_()
Dir\pszDisplayName = @Folder
Dir\lpszTitle = @Titel
Dir\ulFlags = Style
Dir\lpfn = @BrowseCallbackProc()
Dir\lParam = @Path
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
Style = #BIF_STATUSTEXT | #BIF_EDITBOX | #BIF_BROWSEINCLUDEFILES | #BIF_USENEWUI
Debug BrowseForFolder(Style, "Wählen Sie das Ziel der Verknüpfung:", "C:\Windows\")
[Edit]Habe den fehlerhaften Code nochmal Korrigiert, hoffe es funktioniert jetzt[/Edit]
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.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.