![]() |
ActiveX-DLL zum Zugriff auf die Registry unter Vista/W7
Hi,
ich beziehe mich auf ![]() Wie in diesem Beitrag beschrieben muß ich auf die Registry HKEY_LOCAL_MACHINE zugreifen. Bei eingeschalteter Benutzerkontensteuerung ist das nicht ohne weiteres möglich. Ich habe letzte Woche leider ergebnislos versucht eine entsprechende ActiveX-Library zu erstellen. Gescheitert bin ich schon beim Erstellen der Library. Hat jemand dieses erfolgreich getan und kann ein entsprechendes Beispiel ggf. konkrete Anleitung posten (Delphi 2007) ? Danke im voraus Frank |
Re: ActiveX-DLL zum Zugriff auf die Registry unter Vista/W7
Sollte man per ActiveX mit eingeschränkten Rechten Zugriff auf geschützte Ressourcen bekommen, würde ich das für eine eklatante Sicherheitslücke halten. Deswegen gehe ich davon aus, dass dies nicht möglich ist. Warum sollte auch ein Benutzer in HKLM schreiben dürfen/wollen?
|
Re: ActiveX-DLL zum Zugriff auf die Registry unter Vista/W7
Um z.B. auf den Netzwerk liegende Hilfedateien (CHM) zu registrieren.
Außerdem werden ja wie in dem Beispiel beschrieben durchaus Berechtigungen abgefragt. Gruß Frank |
Re: ActiveX-DLL zum Zugriff auf die Registry unter Vista/W7
Und der COM-Server muss von einem Administrator registriert werden, dann kann er auch gleich die Hilfedateien registrieren. Warum also der Umweg?
|
Re: ActiveX-DLL zum Zugriff auf die Registry unter Vista/W7
Die DLL einmalig als Admin zu registrieren ist momentan nicht das Problem sondern die DLL zu
erstellen. |
Re: ActiveX-DLL zum Zugriff auf die Registry unter Vista/W7
Guck mal hier:
![]() Aber noch mal die Frage, warum der Umweg? |
Re: ActiveX-DLL zum Zugriff auf die Registry unter Vista/W7
Danke Luckie,
das hat mir in Bezug auf die grundsätzliche ActiveX-Implementierung weitergeholfen. Allerdings hänge ich bei Deklaration der Methode/Funktion:
Delphi-Quellcode:
Ich muß CoCreateInstanceAsAdmin in der Typ-Bibliothek angeben finde aber nicht die richtigen Parametertypen am wenigsten für "out ppv".
function NewCoGetObject(pazName: PWideChar; pBindOptions: PBindOpts3;
const iid: TIID; out ppv): HResult; stdcall; external 'ole32.dll' name 'CoGetObject'; function CoCreateInstanceAsAdmin(WndHandle: HWND; clsid: TCLSID; iid: TIID; out ppv): HRESULT; var Bo : TBindOpts3; Moniker : PWideChar; begin Moniker := PWideChar(WideString('Elevation:Administrator!new:' + GuidToString(clsid))); FillChar(Bo, SizeOf(Bo), #0); Bo.hwnd := WndHandle; Bo.cbStruct := SizeOf(Bo); Bo.dwClassContext := CLSCTX_LOCAL_SERVER; Result := NewCoGetObject(Moniker, @Bo, iid, ppv); end; Eine Idee ? Gruß Frank |
Re: ActiveX-DLL zum Zugriff auf die Registry unter Vista/W7
Zitat:
Diese Funktion wird benötigt um deinen COM-Server im Clientprogramm zur Laufzeit zu instanziieren zu instantiieren zu erstellen. Der COM Client erstellt damit also eine Instanz deines COM Servers. |
Re: ActiveX-DLL zum Zugriff auf die Registry unter Vista/W7
Danke,
anscheinend habe ich das komplett falsch verstanden, werde es gleichmal probieren. Gruß Frank |
Re: ActiveX-DLL zum Zugriff auf die Registry unter Vista/W7
Hi,
für alle Suchenden hier ein paar nützliche Links. ![]() ![]() Frohe Weihnachten Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:29 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