GetFileAttributes und SHCreateDirectoryEx schlägt manchmal fehl



  • Wenn ich in meinem Programm folgendes aufrufe (ohne Adminrechte)

    DWORD			test = GetFileAttributes("C:\\Windows\\temp123\\456\\789");
    
    	if(test == 0xFFFFFFFF){
    		SHCreateDirectoryEx(NULL, "C:\\Windows\\temp123\\456\\789", NULL);
    	}
    

    und das Verzeichniss "C:\Windows\temp123\456\789" existiert nicht, wird angeblich das Verzeichniss erstellt und existiert beim 2ten Aufruf der Funktion.
    laut Debugger hat test dann den Wert 0x12010. Wenn ich mein Programm im Administratormodus starte schein alles zu funktionieren.

    Wie kann ich auch ohne Administratorrechte, prüfen ob ein Verzeichniss existiert und ggf. versuchen das Verzeichniss zu erstellen. Mir ist klar dass im obigen Fall ohne Adminrechte das Verzeichniss nicht erstellt werden könnte, das wäre so ja auch in Ordnung, zumindest sollte keine positive Rückmeldung über das erstellen oder vorhandensein des Verzeichnisses erfolgen, da ja der Rest meines Programms auf darauf aufbaut.


  • Mod

    Hat Dein Programm ein Manifest?
    Ansonsten hast Du ein Problem mit der Virtualisierung.



  • Danke Martin, das war die Lösung.
    Mein Programm hatte zwar ein Manifest, das war aber fehlerhaft.


Log in to reply