Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#13

Re: Vista und die Dateierweiterung (UAC "On-Demand"

  Alt 29. Jun 2009, 06:07
Zitat von MCXSC:
Zitat von jaenicke:
Einen laufenden Prozess kann man aus Sicherheitsgründen nicht nachträglich mit Adminrechten ausstatten. Die bekommt man beim Start oder nicht.
Doch, genau das ist (zumindest mit Vista und W7) möglich. Siehe Screenshot. Das Programm (KeePass btw) wird ganz normal (also ohne UAC oder Adminrechte) gestartet. Für jene Verknüpfung braucht man (da Registryeintrag) eben Adminrechte; nach dem Drücken des Buttons fragt UAC eben nach ob das erlaubt werden soll (und es ist und bleibt die KeePass.exe - also wird keine zweite EXE aufgerufen).
Dann wird eben KeePass.exe ein zweites mal gestartet. Windows hat leider keine Funktionalität um Threads oder bestimmte APIs getrennt zu priviligieren. Es gibt in Windows also nur die große Keule: Admin ja oder nein.

Oh und btw, der User-level Knoten, der HK_CR abbildet ist HK_CU/Software/CLasses.
Damit kannst du sowohl COM-Registraturen erledigen, also auch File-extensions verknüpfen.[1]

Wobei man mit Fileextensions eigentlich nur sagen sollte: "Jupp, mein Tool kann .xyz öffnen", aber nicht als Default einzutragen.
Einfach so umbiegen hat so einen penetranten Beigeschmack, IMO.

[1] Wenn es en .Net COM Server ist, kann regasm das schon von sich aus.
Für native COM Server musst du regcap.exe aus dem WindowsSDK nehmen. Das gibt dir eine .reg Datei anstelle einer Registrierung, und die kannst du einfach von HK_CR auf HK_CU/Software/Classes ändern.
Für UAC brauchst du einen Out-Of-Process COM Server.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat