Hallo, ich hab gerade überrascht festgestellt, dass wenn ich mit einem selbstgeschriebenen WinAPI-Programm Dateien lade oder speichere das Verzeichnis der Datei von Windows gemerkt wird. D.h. wenn ich das Programm schließe, wieder öffne und auf "... laden" klicke, macht das Browserfenster in dem zuvor benutzten Verzeichnis auf und nicht in dem, wo die Anwendung liegt(was ich vermutet hätte). Wie kann das sein? MfG Mark
Umm.. auch wenn die Windose mittlerweile fast ohne Konsole auskommt... das "Arbeitsverzeichnis" gibts immernoch. Mach maln TTY auf und wechsel mit "cd" wohin, und dann mach mal son Dateidialog...
M.W. speichert der Dateidialog den Pfad in der Registry. Kannst ja mal nach einem entsprechenden Eintrag im Regedit suchen. Ich meine, mich erinnern zu können, dass früher (W2K) der Pfad nicht automatisch gespeichert wurde, sondern dass dafür entweder eine entsprechende Windows-Funktions aufrufen oder dem Dialog ein spezieller Parameter übergeben musste. Ist aber schon lange her, dass ich mich mit Windows-Programmierung gequält habe ;-)
In der Registry kann ich nichts finden, aber wahrscheinlich such ich falsch. Hab schon vermutet dass es damit irgendwie zusammenhängt.
Das Arbeitsverzeichnis ist "laufwerksspezifisch" und wird nach meiner Kenntnis nicht in der Registry gespeichert. Du kannst als Probe mal den Rechner neu starten und schauen, wie dann das Arbeitsverzeichnis Deines Programmes ist.
Was hast du denn für ein Framework für die Entwicklung deines Programmes benutzt? Evtl. werden solche Sonderdienste nämlich vom Programm-Framework im Hintergrund erledigt. Daß Windows das von sich aus macht, ist mir bisher nicht aufgefallen und ich ärgere mich immer wieder über Anwendungen, die immer automatisch das Verzeichnis vorschlagen, in dem die App liegt.
Hi Wird in der Registry gespeichert. HKEY_USERS....Windows/CurrentVersien/COMDLG32/OPENSAVEMRU... Jedenfalls bei W2000. MfG Spess
Bobby wrote: > Das Arbeitsverzeichnis ist "laufwerksspezifisch" und wird > nach meiner Kenntnis nicht in der Registry gespeichert. > Du kannst als Probe mal den Rechner neu starten und schauen, > wie dann das Arbeitsverzeichnis Deines Programmes ist. Es dürfte wahrscheinlich schon reichen einfach mal zwischendurch ein anderes Programm zu starten und dort beim 'File Open' auf ein völlig anderes Verzeichnis zu wechseln.
@Bobby & Karl heinz Buchegger Hab beides gemacht, aber der Dateidialog öffnet immer an der alten Stelle. @Uhu Ich benutze die Codeblocks IDE mit gcc 3.4.2. Ich denk mal nicht dass es daran liegt. @Spess53 Unter XP ist ein Ordner HKEY_USERS/software/Windows/CurrentVersion/Explorer/ComDlg2/OpenSaveMRU/ exe vorhanden, aber komischerweise taucht darin nirgendswo der Name der Anwendung auf.
Hi Anscheinend existiert für jede Dateierweiterung ein Untereintrag. Wie die Einträge Programmen zugeordnet werden entzieht sich leider meiner Kenntnis. Evtl. mal nach 'OpenSaveMRU' gurgeln. MfG Spess
HI Es existiert noch ein Schlüssel 'LastVisitidMRU'. Dort stehen die Programme und das zuletzt aufgerufene Verzeichnis (WideChar-Format'. MfG Spess
> Woher kennt Windows das von Programmen zuletzt benutzte Verzeichnis?
Schön währe das ja. Bei mir landen die Programme zum Speichern immer
erst mal in dem "sch..." 'Eigene Dateien' (das eigentlich für nix
brauchbar ist).
Spess53 wrote >Es existiert noch ein Schlüssel 'LastVisitidMRU'. Dort stehen die >Programme und das zuletzt aufgerufene Verzeichnis (WideChar-Format). Das wars! Dort steht tatsächlich der benutzte Pfad drin. Und wegen der WideChar-Formats wurde es von der SuFu nicht gefunden. @Werner Kann ich mir vorstellen. Das liegt aber wahrscheinlich am Programm selbst und nicht an Windows.
Mark Prediger wrote: > Spess53 wrote >>Es existiert noch ein Schlüssel 'LastVisitidMRU'. Dort stehen die >>Programme und das zuletzt aufgerufene Verzeichnis (WideChar-Format). > > Das wars! Dort steht tatsächlich der benutzte Pfad drin. Und wegen der > WideChar-Formats wurde es von der SuFu nicht gefunden. Tatsächlich. Und dann wundern wir uns alle warum die Registry so aufgebläht wird, wenn MS für jeden Scheiss eine Spezialfunktionalität ins Windows einbaut. Dabei ist diese Funktionalität nun wirklich kein großes Problem. Vor dem Aufruf des File Dialogs das Init Directory setzen und nach dem Beenden des Dialogs den letzten Pfad extrahieren und wieder wegspeichern (von mir aus auch in die Registry) und schon kommen sich einzelne Programme nicht mehr ins Gehege, selbst wenn sie aus irgendeinem Grund die gleiche Dateiendung benutzen. Sinnigerweise ist das ganze dann auch noch im Registrypfad "Explorer" versteckt. Manchmal wünschte ich mir, der Komet würde endlich kommen und auf Redmond abstürzen.
Werner B. wrote: >> Woher kennt Windows das von Programmen zuletzt benutzte Verzeichnis? > > Schön währe das ja. Bei mir landen die Programme zum Speichern immer > erst mal in dem "sch..." 'Eigene Dateien' (das eigentlich für nix > brauchbar ist). Weil das eine Vorgabe für alle Programme ist, die es so auch bei fast allen anderen Betriebssystemen gibt (aka $HOME). Das Problem ist nur, das viele Programme beim Öffnen des Datei-Dialogs einfach irgendeinen fest eingebauten Pfad vorgeben und das nicht dem OS überlassen.
Hi >einfach irgendeinen fest eingebauten Pfad vorgeben und das nicht dem OS >überlassen. Meiner Meinung nach ist es genau umgedreht. Die Programme fordern 'Eigene Dateien' explizit an. Wenn ich einen Dateidialog in ein Programm einbaue und keine Pfadvorgaben mache, lande ich jedes mal in dem zuletzt verwendeten Verzeichnis. Auch nach Neustart des Programms. @Arc Net: Es lässt sich auch ein anderes Verzeichnis als 'Eigene Dateien' fest einstellen. MfG Spess
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.