¿Cómo puedo reiniciar en C++? ¿Hay alguna disposición en WinSDK? ¿Qué tipo de derechos debería tener mi programa (proceso) para hacerlo?Cómo reiniciar mediante programación?
Respuesta
Existe la ExitWindowsEx Function que puede hacer esto. Debe pasar el indicador EWX_REBOOT (0x00000002) para reiniciar el sistema.
Nota importante aquí (cita de MSDN):
La función ExitWindowsEx vuelve tan pronto como se ha iniciado el proceso de apagado. El apagado o cierre de sesión se realiza de forma asincrónica. La función está diseñada para detener todos los procesos en la sesión de inicio de sesión de la persona que llama. Por lo tanto, si no es el usuario interactivo, la función puede tener éxito sin cerrar realmente la computadora. Si no es el usuario interactivo, use la función InitiateSystemShutdown o InitiateSystemShutdownEx.
Puede elegir entre la función adecuada según su situación.
Gracias, voy a continuar con esto. Pero me confunden los tokens de acceso y todo, ¿podría sugerir algún enlace para analizarlo? – lalli
Supongo que tiene un muy buen caso para querer reiniciar una PC que puede estar ejecutando muchas otras aplicaciones.
Parece que está buscando InitiateShutdown()
, pasando SHUTDOWN_RESTART
en dwShutdownFlags
.
Antes de llamar a la función ExitWindowsEx que necesita para enable la SE_SHUTDOWN_NAME privilege:
- OpenProcessToken (GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, ...)
- LookupPrivilegeValue
- AdjustTokenPrivileges
- CloseHandle
- 1. Reiniciar mediante programación un servicio de Windows
- 2. Cómo reiniciar o volver a cargar la aplicación de iPhone mediante programación en iOS
- 3. Cómo ejecutar NUnit mediante programación
- 4. Magento, ¿cómo deshabilitar el módulo mediante programación?
- 5. mediante programación en C#
- 6. Detener y reiniciar mediante programación los servidores Express (para cambiar los puertos)
- 7. reiniciar (o volver a cargar la configuración de) Eclipse-CS mediante programación
- 8. creando uiview mediante programación?
- 9. Agregar PageControl mediante programación
- 10. Generar propiedades mediante programación
- 11. Deshabilitar mediante programación window.location.reload?
- 12. Editando Web.config mediante programación
- 13. ¿Consulta mediante programación MSDN?
- 14. Cómo interactuar con una aplicación mediante programación
- 15. ¿Cómo crear subdominios para IIS7 mediante programación?
- 16. ¿Cómo iniciar sesión en wordpress mediante programación?
- 17. Cómo crear un contacto mediante programación
- 18. Cómo programar una tarea mediante programación
- 19. Cómo agregar una referencia mediante programación
- 20. ¿Cómo finalizo/reinicié un UIGestureRecognizer mediante programación?
- 21. ¿Cómo agregar imágenes para verlas mediante programación?
- 22. Cómo agregar un atributo mediante programación
- 23. Cómo desplazarse mediante programación un HorizontalScrollView
- 24. Cómo agregar mediante programación vista en ViewFlipper
- 25. Cómo agregar vistas a vistas mediante programación
- 26. Cómo calcular la integral indefinida mediante programación
- 27. ¿Cómo obtener privilegios de root mediante programación?
- 28. ¿Cómo añadir un NSTableView desplazable mediante programación
- 29. Cómo agregar/quitar la referencia mediante programación?
- 30. ¿Cómo ocultar una vista mediante programación?
No sugiero que hagas esto. El usuario probablemente lo odiaría si el sistema se reinicia sin que ellos mismos lo hagan. –
Preguntaré al usuario antes de hacerlo (guarde sus cosas, bla, bla ...) ... – lalli