Adminrechte mit Manifest NEU: Dateizugriffsproblem
-
Im SDK gibt es IMHO speziele defines die dieses 1 24 unnötig machen
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "Admin.manifest"
Die Verwendung dieser Manifeste sind wie immer in der MSDN beschrieben:
http://msdn.microsoft.com/en-us/library/ms997646.aspx
-
Also im Resource Editor ist die Manifest in der ersten Zeile drin! Ich habe jetzt auch mal den Ansatz mit
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "Admin.manifest"
versucht aber weiterhin ohne Erfolg!
Ich nutze den CodeGear C++ Builder 2009 und habe halt wie beschrieben die Manifestdatei eingefügt. Vorher habe ich eine Textdatei im Texteditor erstellt und die XML Zeilen eingefügt, wie oben stehen und halt nach Admin.manifest umbenannt!Mein Ziel ist es halt einfach nur, dass Vista oder Windows 7 nachfragt, ob ich das Programm als Admin ausführen möchte und wenn ja, dann das Programm halt Adminrechte hat!
-
Das funktioniert erst dann, wenn Du auch winuser.rh in Deinem Ressourcen-Script inkludierst. Mit den Zahlen wär's halt auch ohne gegangen...
-
Wie genau soll das mit der winuser.rh in meinem Ressourcen-Script gehen? Einfach mit #include <winuser.rh> in der .rc Datei includieren oder wie mache ich das?
-
Ja, einfach oben inkludieren, er meinte aber wahrscheinlich winuser.h (also ein 'r' weniger).
-
Badestrand schrieb:
, er meinte aber wahrscheinlich winuser.h (also ein 'r' weniger).
Nein, ich meinte winuser.rh.
-
Vielen Dank es klappt jetzt!
Das mit der winuser.h habe ich bereits versucht aber wie ich es jetzt merkte hatte ich einen Fehler in der Manifestdatei! Dort war ein falscher Anführungsstrich!
-
Hi, ich habe da noch ein Problem wegen den Adminrechten.
Also die schöne Meldung kommt mit Hilfe des Manifests aber ich möchte jetzt gerne eine Datei mit folgender Funktion öffnen, die als Besitzer den TrustedInstaller hat:
HANDLE hFile = CreateFile((Dateipfad).c_str(),GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0, NULL);
Jedoch bekomme ich immer beim Öffnen die Fehlermeldung "Das Handle ist ungültig." über GetLastError() zurück. Ich gehe mal davon aus, dass es am TrustedInstaller liegt, da andere Dateien, die als Besitzer die Administratorengruppe haben kann ich ohne Probleme öffnen.
Jedoch KANN es sein, dass die Rechte der Dateien mit TrustedInstaller als Besitzer nicht mehr standardmäßig sind, da alle Benutzer/ Gruppen nur folgendes dürfen: "Lesen, Ausführen ; Ordnerinhalt anzeigen ; Lesen", jedoch der TrustedInstaller hat vollen Zugriff auf diese.
Was kann ich machen, damit ich Dateien öffnen kann, wo der TrustedInstaller als Besitzer angegeben ist?
Und sind die Rechte für die anderen Benutzer so in Ordnung? Das war jetzt als Beispiel der winsxs Ordner von meinem Windows 7 x64 System.
-
Hat sich erledigt!
Ich habe vergessen mir Privilegien zu geben!
-
Wie, was braucht man denn da?