{"id":74,"date":"2014-01-23T13:02:55","date_gmt":"2014-01-23T11:02:55","guid":{"rendered":"http:\/\/blog.ghbss.homedns.org\/?page_id=74"},"modified":"2014-01-23T13:02:55","modified_gmt":"2014-01-23T11:02:55","slug":"com-dll-registrieren-ohne-admin-rechte","status":"publish","type":"page","link":"https:\/\/blog.ghbss.de\/?page_id=74","title":{"rendered":"COM-Dll Registrieren ohne Admin-Rechte"},"content":{"rendered":"<p>Ein Komponenten(COM) basierte DLL sollte immer registriert werden bevor man es benutzen kann.<\/p>\n<p>Hierf\u00fcr benutzt man normalerweise &#8222;regsvr32.exe&nbsp;&nbsp; COM.DLL&#8220; von Windows. Aber Ausf\u00fchren dieses Programs braucht Administrationsrechte. <\/p>\n<p>Man kann erst mal versuchen den DLL unter &#8222;CURRENT_USER&#8220; zu registrieren anstatt des &#8222;CURRENT_MACHINE&#8220;, das erreicht man im Normal fall mit:<br \/>&#8222;regsvr32.exe&nbsp;&nbsp; <strong><em>\/i:user<\/em><\/strong>&nbsp;&nbsp; COM.DLL&#8220;<br \/>so ein Aufruf wird den &#8222;DllInstall&#8220;-Funktion der DLL aufrufen und der Schalter &#8222;user&#8220; f\u00fchrt dazu, dass der DLL unter &#8222;CURRENT_USER&#8220; registriert wird.<\/p>\n<p>Alternative kann man bei selbst entwickelte DLLs daf\u00fcr sorgen, dass der immer unter &#8222;CURRENT_USER&#8220; registriert wird. Hierf\u00fcr braucht man kurze Erweiterung in zwei Funktionen:<\/p>\n<ul>\n<li>DllRegisterServer<\/li>\n<li>DllUnregisterServer<\/li>\n<\/ul>\n<p>In den beiden Funktionen muss man vor anderen Aufrufe folgende Funktion aufrufen : <br \/>&#8222;<em><strong>ATL::AtlSetPerUserRegistration(true);<\/strong><\/em>&#8220; <br \/>Jetzt DLL wird nur noch unter &#8222;CURRENT_USER&#8220; registriert.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ein Komponenten(COM) basierte DLL sollte immer registriert werden bevor man es benutzen kann. Hierf\u00fcr benutzt man normalerweise &#8222;regsvr32.exe&nbsp;&nbsp; COM.DLL&#8220; von Windows. Aber Ausf\u00fchren dieses Programs braucht Administrationsrechte. Man kann erst mal versuchen den DLL unter &#8222;CURRENT_USER&#8220; zu registrieren anstatt des &#8222;CURRENT_MACHINE&#8220;, das erreicht man im Normal fall mit:&#8222;regsvr32.exe&nbsp;&nbsp; \/i:user&nbsp;&nbsp; COM.DLL&#8220;so ein Aufruf wird den &#8222;DllInstall&#8220;-Funktion [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":72,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-74","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=\/wp\/v2\/pages\/74","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=74"}],"version-history":[{"count":0,"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=\/wp\/v2\/pages\/74\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=\/wp\/v2\/pages\/72"}],"wp:attachment":[{"href":"https:\/\/blog.ghbss.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=74"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}