GetOpenFilename api-Aufruf in Windows 7 nicht erlauben den direkten Zugriff auf Meine Dokumente

In vielen meiner Access (2002) - Programme, die ich verwenden GetOpenFileNameA und GetSaveFileNameA Funktionen aus comdlg32.dll. Ich habe oft die anfangs-Verzeichnis des Benutzers (Ordner eigene Dokumente (über Aufrufe SHGetSpecialFolderLocation und SHGetPathFromIDListA von shell32). Das ganze funktioniert einwandfrei unter Windows XP.

Allerdings habe ich vor kurzem umgestiegen auf Windows 7, da meine Entwicklungsumgebung und wurden immer folgende Fehlermeldung:

Können Sie nicht öffnen Sie diese Position mit
diesem Programm. Bitte versuchen Sie einen anderen
Lage.

Die Funktion, die ich nutzen, um Meine Dokumente, Speicherort ist wieder in den richtigen Ordner. Jedoch, selbst wenn ich hart code, das Verzeichnis, in das GetOpenFileNameA aufrufen, ich bekomme immer noch den Fehler.

Stieß ich auf diesen Beitrag: http://social.msdn.microsoft.com/Forums/en-US/windowsuidevelopment/thread/3391f1dd-25b0-4102-9d5c-58309cc72c9d aber auch die Anpassung an die Arbeit mit Access anstelle von Excel, ich hatte kein Glück.

EDIT: Plötzlich ist dies nicht länger ein problem für mich. Ich vermute, ein windows-update ging die Lösung dieses Problems. Weiß jemand, ob das stimmt oder nicht?

EDIT: Es stellt sich heraus, dies ist immer noch ein problem. Auch im Fall, dass es hilft bei der Fehlersuche habe ich festgestellt, dass ich bekomme diese Fehlermeldung und es werden keine speziellen Ordner (eigene Musik, eigene Dokumente, etc). Auch, wenn ich den Speicherort der Ordner "eigene Musik", sagen Sie, C:\Test dann bekomme ich diese Meldung, wenn ich versuche, öffnen Sie den Ordner C:\Test, während die Ordner C:\Users\Mike\Music (das original Meine Musik Ort) öffnet sich ohne Probleme.

  • Verwandte Frage hier gepostet: stackoverflow.com/questions/1907866/...
  • Warum würde Sie zwingen, die ursprüngliche Verzeichnis MyDocs? Sie sollten nur Kraft einer ersten Verzeichnis, wenn Sie gespeichert, eine Vorherige Auswahl durch den Nutzer oder Ihre app ist irgendwie in der Lage zu erraten, ein nützliches Verzeichnis basiert auf einigen Zustand. ComDlg32 versucht, erinnere mich an einige dieser Infos für Sie als gut. MyDocs ist die Standard-fallback sowieso, so dass es keinen Sinn hat Sie zu zwingen.
  • Meistens geben Benutzer einen konsistenten Ausgangspunkt beim exportieren von Daten aus Access. Oft habe ich dem Benutzer mehrere Access-Anwendungen. In der Regel haben Sie eine Ordner-Struktur einrichten, speichern exportiert Informationen in verschiedene Speicherorte basierend auf die app, die Sie exportieren aus. Soweit ich weiß, ComDlg32, erinnert sich die info auf der Grundlage der Prozess ausführbar ist. Leider, sieben völlig unterschiedliche access-Anwendungen haben msaccess.exe als der Prozess ausführbar ist. Die neue IFileDialog hat tatsächlich eine SetClientGUID Eigenschaft, behebt diese Einschränkung.
  • Wenn comdlg32.dll hat, dass die Beschränkung auf aktuelle Verzeichnis (d.h., pro ausführbarer Datei und nicht pro Prozess), dann werden viele sollten Sie Graben Sie ein verwenden der Windows-API direkt, die so weit ich je erlebt habe in meiner Access-apps nicht über diese Einschränkung.
InformationsquelleAutor mwolfe02 | 2009-12-14
Schreibe einen Kommentar