Programm hat keine Rechte auf Registrie bei Windows Vista



  • Hallo,
    ich habe eine kleine Anwendung geschrieben gehabt, die paar Einträge in der Registrie verändert. Bin Windows XP funktioniert alles problemlos, bei Vista aber bekomme ich immer beim "RegOpenKeyX() Fehlercode 5 zurück, welcher soviel bedeutet wie "ACCESS DENIED -> Kein Zugriff". Hatte beim FLAG erst die ganze Zeit KEY_ACCESS_ALL stehen. War wohl ein wenig zu viel und habs nun auf KEY_SET_VALUE begrenzt. Selbst dort bekomme ich aber den Error Code 5 zurück. Ausgeführt wird das ganze natürlich mit dem Administratorkonto. Hat einer evtl eine Idee wie meine Anwendung die Rechte erlangen kann, REG Einträge unter Vista zu bearbeiten ? Bei XP funzt ja alles prima -.-



  • Hast du im Manifest "requireAdministrator" angegeben? Auch unter dem Admin-Konto werden Anwendungen nur mit User-Rechten gestartet, wenn man das nicht angibt.



  • Machine schrieb:

    Hast du im Manifest "requireAdministrator" angegeben? Auch unter dem Admin-Konto werden Anwendungen nur mit User-Rechten gestartet, wenn man das nicht angibt.

    Bin ziemlich neu bei der ganzen WinAPI Angelegenheit. kannst mir eben erklären wi eich das genau angebe (programmiersprache: c++) ? DANKE dir schonmal !



  • Mit den paar Angaben nicht, nö.

    Welche IDE, welchen Compiler, welches System, blablabla...

    Ausserdem: http://www.google.de/search?hl=de&q="manifest+einbinden"+c%2B%2B&btnG=Suche&meta=

    Ein wenig selbst suchen kannst du auch. Vorkauen hilft einem meist nicht weiter.



  • hmm scheiße kann jetzt nicht editieren da ich nicht gereggt bin. Jedenfalls hab ich im Projectordner eine Manifest Datei gefunden da steht aber drin:

    requestedExecutionLevel level='asInvoker' uiAccess='false' />

    Habs dort mal geändert auf requireAdministrator und dann das Projetc nochmal neu kompiliert. Danach stand da wieder invoker drin 😛 ... wo kann ich das fetslegen in VS 2008 ?^^





  • Schreiboperationen auf Schlüssel unterhalb von HKLM und HKCR sind nur mit Adminrechten möglich. Das ist in Vista nicht anders als in XP. Unter XP fällt es nur nicht so auf, weil man normalerweise mit Adminrechten unterwegs ist.

    Du kannst Deiner Anwendung ein Manifest hinzufügen, so dass beim Start automatisch die Nachfrage der Benutzerkontensteuerung erscheint. Alternativ kannst Du das Programm auch per rechter Maustaste mit "Als Administrator ausführen" starten.


Log in to reply