Seite 1 von 2
Windows 7 OpenFileRequester() Ansicht merken ?
Verfasst: 09.07.2014 11:17
von silbersurfer
Hallo Leute,
habe nach vergeblicher suche im Forum diesen Tread erstellt, es geht um OpenFileRequester() unter Win7
Dort kann man ja die Ansicht ändern z.b auf Symbole,Details,Kacheln u.s.w Soweit so gut.
Was mich Ärgert ist wenn Ich z.b Symbole aus gewählt habe, und dann eine Datei lade. Nach nochmaligen Öffnen des FileRequester
er meine einstellungen vergessen hat
meine Frage nun, gibt es da eine möglichkeit das OpenFileRequest() meine Einstellungen nicht vergisst,
oder Ich Parameter übergeben kann welche die Ansicht´s einstellungen verändern kann ?
würde mich freuen wenn es da einige tipps von euch gibt
Re: Windows 7 OpenFileRequester() Ansicht merken ?
Verfasst: 09.07.2014 14:09
von andi256
Code: Alles auswählen
Global StandardDatei$
StandardDatei$ = "C:\Windows\"
For i = 1 To 5
File$ = OpenFileRequester("Eingabe",StandardDatei$,"*.*",0)
StandardDatei$ = GetPathPart(File$)
MessageRequester("","Filerequester steht nun im verzeichnis " + StandardDatei$)
Next
DateiName$ = OpenFileRequester(Titel$, StandardDatei$, Pattern$, PatternPosition [, Flags])
Deine Einstellung übergibst du an die "StandardDatei$" die du Dir halt irgendwie merken musst.
falls du dazwischen das Programm verlässt .. musst dir halt dein zuletzt verwendetes Verzeichnis in eine ".ini" Datei schreiben
PS. das mit GetPathPart(..) kannst auch weglassen, hab ich nur zur Verdeutlichung rein gemacht.
mfg
Andi
Re: Windows 7 OpenFileRequester() Ansicht merken ?
Verfasst: 09.07.2014 14:26
von NicTheQuick
Es geht doch hier nicht um den Standardpfad, sondern um die Ansicht, also Liste, Details, Symbole, oder wie die alle heißen.
Re: Windows 7 OpenFileRequester() Ansicht merken ?
Verfasst: 09.07.2014 19:36
von silbersurfer
Es geht doch hier nicht um den Standardpfad, sondern um die Ansicht
Das was NicTheQuick Sagt ist richtig andi256, mit dem Dateipfad ist es ja gut in der hilfe erklärt
mir geht es um die Ansicht der Datein aber danke dir für deine mühe...
Re: Windows 7 OpenFileRequester() Ansicht merken ?
Verfasst: 09.07.2014 20:22
von ts-soft
Zuständig ist dafür die "GetOpenFileName_" API. Ich kann da aber keine voreinstellungen diesbezüglich finden.
GetOpenFileName
Re: Windows 7 OpenFileRequester() Ansicht merken ?
Verfasst: 09.07.2014 21:00
von Sicro
Hier wird beschrieben, wie es per WinAPI funktioniert:
http://msdn.microsoft.com/de-de/library/bb979268.aspx
Für ein PB-Code habe ich gerade zu wenig Zeit.
Re: Windows 7 OpenFileRequester() Ansicht merken ?
Verfasst: 09.07.2014 21:46
von silbersurfer
erstmal Danke
ts-soft und
Sirco,
Hier wird beschrieben, wie es per WinAPI funktioniert:
also das was Ich dort gelesen habe, ist für mich doch etwas schwerer Tobak Sirco
Das ist ja doch schwieriger als ich dachte, für ein solch kleines Future
naja dann werde Ich darauf erstmal verzichten, bis mal in der lage bin das richtig zu verstehen
Re: Windows 7 OpenFileRequester() Ansicht merken ?
Verfasst: 10.07.2014 20:51
von Sicro
silbersurfer hat geschrieben:also das was Ich dort gelesen habe, ist für mich doch etwas schwerer Tobak Sirco

Das ist ja doch schwieriger als ich dachte, für ein solch kleines Future
Mit dem Link wollte ich dir (und ts-soft) nur zeigen, dass dein Vorhaben per WinAPI möglich ist. Beispiel-Codes kann man im englischem Forum finden (nach "ofn" suchen"), aber diese funktionieren anscheinend nicht mehr unter neueren Windows-Versionen richtig. Zudem habe ich erfahren, dass diese Vorgehensweise die Open/Save-FileRequester nur noch im klassischem Stil darstellt (kein XP/Vista/7-Stil):
https://stackoverflow.com/questions/473 ... enfilename
Wie wäre es, wenn du einfach ein eigenen OpenFileRequester bastelst? Bei dem ExplorerListGadget kannst du die Ansichteinstellung per SetGadgetAttribute setzen und per GetGadgetAttribute auslesen.
Re: Windows 7 OpenFileRequester() Ansicht merken ?
Verfasst: 11.07.2014 11:45
von Shardik
Ganz so schwierig ist die Sache auch nicht! Ich habe einmal versucht, alle wesentlichen Elemente in einem kurzen funktionsfähigen Beispiel zusammenzufassen. Allerdings wird nicht der OpenFileRequester von PB genutzt, sondern die Windows API-Funktion GetOpenFileName(). Ich habe das Beispiel erfolgreich unter Windows XP SP3 und Windows 7 x86 SP1 getestet:
Code: Alles auswählen
EnableExplicit
#OFN_ENABLESIZING = $800000
#OFN_VIEW_REPORT = $702C
#OFN_VIEW_LIST = $702B
#OFN_VIEW_LARGEICON = $7029
#OFN_VIEW_SMALLICON = $702A
#OFN_VIEW_THUMBNAIL = $702D
#OFN_VIEW_THUMBNAIL_2K = $7031
#OFN_VIEW_TILE = $702E
Procedure HookCallback(DialogHandle.I, Msg.I, WParam.I, LParam.I)
Protected DialogWindow.I
Protected *NMHdr.NMHDR
If Msg = #WM_NOTIFY
*NMHdr = LParam
If *NMHdr\code = #CDN_FOLDERCHANGE
DialogWindow = FindWindowEx_(GetParent_(DialogHandle), 0, "ShellDll_DefView", 0)
If DialogWindow
SendMessage_(DialogWindow, #WM_COMMAND, #OFN_VIEW_LARGEICON, 0)
EndIf
EndIf
EndIf
EndProcedure
Define Filename.S{#MAX_PATH}
Define OFN.OPENFILENAME
OFN\lStructSize = SizeOf(OPENFILENAME)
OFN\lpstrFile = @Filename
OFN\nMaxFile = #MAX_PATH
OFN\Flags = #OFN_EXPLORER | #OFN_ENABLESIZING | #OFN_FILEMUSTEXIST | #OFN_ENABLEHOOK
OFN\lpfnHook = @HookCallback()
If GetOpenFileName_(OFN) = 0
MessageRequester("Information", "Der Requester wurde abgebrochen!")
Else
MessageRequester("Information", "Sie haben folgende Datei ausgewählt:" + #CR$ + Filename)
EndIf
Re: Windows 7 OpenFileRequester() Ansicht merken ?
Verfasst: 11.07.2014 11:49
von NeoChris
Wie geil is das den.Wen man #OFN_EXPLORER entfernt dann hat man den ganz alten FileRequester. Voll alt und nostalgisch.
