Frage

Ich rufe Createfile () eine Datei in dem Programmdatenverzeichnis zu erstellen. Ich verwende SHGetSpecialFolderPath (), um die Verzeichnis-Namen zu erhalten.

Ich habe einen Benutzer mit Vista, für die Createfile () zurückkehrt Fehler 5 (Zugriff verweigert). Es würde helfen, wenn ich weiß, wo Createfile () wurde tatsächlich die Datei zu erstellen versuchen, damit wir seine Ordner-Berechtigungen überprüfen. Das Problem mit Vista (UAC) ist, wird es nicht versuchen, die Datei in dem Verzeichnis zu erstellen, die ich in übergeben. Es ist auch in einem Virtuals Verzeichnis sein könnte. Eine zusätzliche Quelle der Verwirrung ist dieser Benutzer Deutsch ist und obwohl SHGetSpecialFolderPath () zurückkehrt „C: \ Program Data \ bla bla“, wie der Weg, glaube ich nicht, das ist eigentlich, wo der Weg ist. Ich denke, Deutsch Vista das deutsche Wort für „Programmdaten“ verwendet. Ich möchte in der Lage sein, um den Benutzer zu sagen: „Das ist der genaue Pfad, in dem wir die Datei erstellen möchten. Überprüfen Sie die Berechtigungen für diesen Ordner.“

Ich weiß, dass Sie einen Weg aus einer geöffneten Datei Griff bekommen können, aber in diesem Fall ist die Createfile () schlägt fehl, so dass ich nicht einen offenen Griff haben. Wie kann ich Vista bekommen, mir zu sagen den tatsächlichen Pfad, wo es versucht, die Datei zu erstellen?

War es hilfreich?

Lösung

Process Monitor Feuer und beobachten, was es tut: http://technet.microsoft.com/en-us/sysinternals/bb896645. aspx

scroll top