Pregunta

Tengo una aplicación que ejecuta una aplicación de actualización automáticamente que inicia. Sin embargo, cuando la primera aplicación Laucnches y ve que se necesita una actualización, lanza el actualizador y falla porque la seguridad en Vista. Si lanzo el actualizador manualmente como administrador, entonces funciona correctamente.

1) ¿Cómo puedo hacer esto automáticamente desde la primera aplicación?

2) Si configure las propiedades para iniciar como administrador, entonces obtengo el cuadro de diálogo de seguridad ... ¿Cómo lo lanceo sin ningún diálogo de seguridad/permiso de Vista?

¡¡Gracias por la ayuda!!

¿Fue útil?

Solución

Por lo tanto, desea iniciar una instalación que requiera derechos de administrador sin derechos de administrador? Porque, ya sabes, con UAC habilitado, el lanzamiento de una aplicación con derechos de administrador requiere el diálogo por definición. Ese es el objetivo de eso.

Ni siquiera intentes eso. Mire Firefox, una aplicación decente con actualización automática. Tendrá que confirmar el diálogo de consentimiento para cada actualización, y eso está bien. Porque si el usuario no quiere eso, puede deshabilitar UAC. Pero ese es su problema, no el tuyo. Se supone que no debe deshabilitar UAC de/para su programa. Es como un invitado que requiere desbloquear todas las puertas para entrar cuando podrías tocar el timbre en la puerta principal.

Incrustar un manifiesto en el actualizador que especifica requireAdministrator. Esto mostrará el cuadro de diálogo de consentimiento si el usuario tiene habilitado la UAC y funcionará sin problemas si el usuario tiene UAC deshabilitado.

Con respecto a la solución 1 de Reed Copsey: si su actualizador es un servicio, a las personas les puede gustar. A menos que sea un bien absorbido, digamos, compañía antivirus, esto podría dañar su reputación en serio.

Otros consejos

Si está tratando de hacer esto en su propio sistema, deshabilitando la UAC, Según lo sugerido por i3a0 trabajará.

Si esto es para el software que implementa en otros sistemas, me temo que no hay una forma directa de hacerlo. Evitar el diálogo de seguridad sería derrotar por completo el sistema UAC: si hubiera una manera fácil de evitarlo, sería inútil. El diálogo existe porque está haciendo algo que requiere permisos elevados.

Hay un par de opciones aquí:

1) Reescribir su actualización como servicio, con alguna forma de IPC de su aplicación de espacio de usuario que lo notifica para actualizar. Esto permitiría que se instalara en el sistema como administrador, y ejecutándose en segundo plano, por lo que ya tenía administradores de administración cuando solicitó una actualización.

2) Calcule qué requiere específicamente privilegios elevados en su aplicación de actualización y vuelva a trabajar esas secciones para que se pueda ejecutar como un usuario normal.

Un enfoque directo sería deshabilitar la UAC de Vista. La información sobre cómo hacer esto se puede encontrar en http://www.vista4beginners.com/how-to-disable-uac. Un defecto obvio de este método es que afectará a todas las aplicaciones, lo que puede plantear una preocupación de seguridad. Si la seguridad es una preocupación, es posible que desee buscar otro método.

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