![]() |
Vista -> UAC -> Funktion in DLL
Hi,
da ich in meinem Programm selten aber doch einen zugriff auf die registry brauche, möchte ich das gleich richtig machen. Habe bis jetzt was gefunden, wie man die Registry zugriffe in einen COM Server auslagern kann, und diesen dann aufruft. Da mir COM aber etwas unsymphatisch ist, wäre es mir lieber, wenn ich ne DLL habe, wo einfach ne funktion ausgelagert, und ich diese aufrufe, dann sollte das UAC kommen nach dem admin schreien, und dann die funktion aufrufen ... ist das so möglich? hat wer nen codeschnipsel? oder kann ich das nur mit exe files und COM Server machen? |
Re: Vista -> UAC -> Funktion in DLL
Nein. Eine normale DLL wird in den Anwendungsprozess geladen und läuft damit mit gleichen Rechten wie die Exe.
Du brauchst schon eine eigene Exe mit entsprechend angepaßten Manifest welches beinhaltet das Admin-Rechte nötig sind weche du dann mit ShellExecute startest. |
Re: Vista -> UAC -> Funktion in DLL
hmmm schade, dachte mir, das es vielleicht ne möglichkeit gibt eine dll speziell dynamisch zu laden, dass diese ein neues security token bekommen kann oder so ....(bei COM Servern, die in DLL ausgelagert sind sollte es ja funktionieren)
... nda dann muß ich es doch per COM Server machen |
Re: Vista -> UAC -> Funktion in DLL
Bei COM-Server spielt ja auch noch wieder andere Möglichkeiten der Rechtevergabe hinzu.
Hast du da was spezielles eingestellt? |
Re: Vista -> UAC -> Funktion in DLL
nein, ich bin gerade erst am rumtesten von den diversen sachen ...
zuerst wollte ich mal probieren mit einem manifest mal fix sagen, das das ding als admin laufen soll (aber das will nicht so wie ich ;) ) ![]() und dann das mit dem COM Server testen ![]() muß ich bei dem manifest sonst noch was beachten? habe das manifest
Code:
das ist die rc
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="Project1" type="win32"/> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator"/> </requestedPrivileges> </security> </trustInfo> </assembly>
Code:
mache mit brcc32 dann ne res und binde diese dann mit {$R manifest.res} ins project ein
7 24 "Project1.manifest"
allerdings startet er ohne die frage ob er als admin starten darf ... (mit dem hackerle beim exe, immer als admin starten funkt es) [edit]Kommando zurück, sieht aus, als ob ich da noch ne standard winxp.res eingebunden habe, und der linker (oder wer auch immer) nimmt immer automatisch die .... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz