No olvides que en las ciencias un problema casi siempre tiene varias soluciones, por lo tanto compartimos la mejor y más eficiente.
Solución:
En realidad, no puede ejecutar la aplicación ClickOnce con privilegios administrativos, pero hay un pequeño truco, puede iniciar un nuevo proceso con privilegios de administrador. En App_Startup:
if (!IsRunAsAdministrator())
var processInfo = new ProcessStartInfo(Assembly.GetExecutingAssembly().CodeBase);
// The following properties run the new process as administrator
processInfo.UseShellExecute = true;
processInfo.Verb = "runas";
// Start the new process
try
Process.Start(processInfo);
catch (Exception)
// The user did not allow the application to run as administrator
MessageBox.Show("Sorry, this application must be run as Administrator.");
// Shut down the current process
Application.Current.Shutdown();
private bool IsRunAsAdministrator()
var wi = WindowsIdentity.GetCurrent();
var wp = new WindowsPrincipal(wi);
return wp.IsInRole(WindowsBuiltInRole.Administrator);
Leer artículo completo.
Pero si desea una solución más nativa y sencilla, simplemente pídale a un usuario que ejecute Internet Explorer como administrador, la herramienta ClickOnce también se ejecutará con derechos de administrador.
El tiempo es una cosa de todo el sistema, no puede cambiarlo solo para su proceso. La única forma de mentirle a sus dependencias es enganchar la API, usando Detours o algo similar. No permitido si eres una cuenta de usuario baja.
Modificar la hora requiere los privilegios “Cambiar la hora del sistema” y/o “Cambiar la zona horaria” (que normalmente se otorga a la cuenta de Administrador).
Y como mencionó @Chris, el administrador y ClickOnce no son compatibles.
Correcto: ClickOnce no puede operar con privilegios de administrador. De hecho, está diseñado para no hacerlo.
Comentarios y valoraciones del artículo
Al final de la artículo puedes encontrar las interpretaciones de otros sys admins, tú todavía tienes el poder insertar el tuyo si lo crees conveniente.