Pregunta

Tengo un control ActiveX que estoy cargando con JavaScript en Internet Explorer. Que necesita para funcionar integridad como medio bajo UAC en Vista y Win7. Esto está escrito en C / C ++, compilado en Visual Studio.

Una forma de aumentar los privilegios es crear un proceso intermediario que puede solicitar un nivel de integridad medio. Sin embargo, para este proyecto, esto no es una solución práctica. Realmente necesito el propio control ActiveX para funcionar elevada.

Mi pregunta es: ¿cuál es la forma más fácil de hacer esto? ¿Puedo cambiar las opciones de construcción en el proyecto de ser un exe, y utilizar el COM entre procesos del sistema para manejar automáticamente las comunicaciones conectar, o tengo que ser más sofisticado? ¿Necesito hacer complicados como manualmente llamar a CreateProcess y hacer algún tipo de intermediario, o puede simplemente trabajar como un archivo EXE ActiveX que eleva a sí misma?

¿Fue útil?

Solución

En su mayoría depende de lo que su control ActiveX, cómo se incrusta en una página y cómo se implementa.

El enfoque más sencillo sería probablemente para ponerlo en práctica como un servidor EXE, registrarlo en su caso y luego dar los permisos de ejecución para ejecutar en el medio en el Derechos Low directiva de elevación .

Si usted no quiere ir tan lejos que podría escribir un simple encargo fuera de proceso de servidor que a su vez se registra y poner en marcha su propia IClassFactory a las solicitudes de creación de proxy en el DLL existente . Incluso se puede añadir una clave AppID para su objeto existente y especificar que es un DllSurrogate , aunque (aparte de registrarla como una aplicación COM +) puede que no sea fácilmente capaz de forzar la creación del objeto en la madre sustituta (debido a que el valor predeterminado para el IE es especificar CLSCTX_ALL al crear objetos que recoger el registro en proceso en primer lugar).

Por supuesto, después de todo que si su código hace demasiadas suposiciones acerca de dónde está o utiliza las interfaces de los no-proxy no podrían funcionar de todos modos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top