Cómo cerrar mi computadora usando C#?¿Cómo apago la computadora?
Respuesta
Una manera fácil: Uso Process.Start para ejecutar Shutdown.exe. P/Invoke una llamada a ExitWindowsEx
Este sería el P/Invoke firma::
[DllImport("aygshell.dll", SetLastError="true")]
private static extern bool ExitWindowsEx(uint dwFlags, uint dwReserved);
En todo caso, el usuario que ejecuta el código necesitará sistema de parada
shutdown /s /t 0
manera programática
privilegios (normalmente no es un problema, pero es un punto importante para recordar).
¿Diría algo acerca de cómo una persona elegiría entre los dos métodos? ¿O es simplemente fácil vs no tan fácil? –
Me gustaría ir por la segunda opción en el software de producción, ya que le da más control (razones de cierre, etc.). Me lleva un poco más de tiempo implementarlo, ya que necesitaría buscar el indicador correcto y la firma. – driis
En una suposición (no probado):
Process.Start("shutdown", "-s -t 0");
Utilice una variación del código "de cierre de sesión de usuario" que se muestra here.
Este código utiliza la llamada API ExitWindowsEx
.
La manera más difícil, funciona perfectamente en los ordenadores portátiles, aunque tarda algún tiempo:
Spawn a couple endless loops in more threads than cpu cores.
Wait for overheat which will automatically shutdown a computer.
:)
¡Tantos votos negativos! ¿Fui solo yo quien encontró la respuesta divertida? – Marcel
entretenido, entonces +1. Recuerda: Todo el trabajo y el juego hacen que Jack sea un chico aburrido .. –
diferentes métodos:
A. System.Diagnostics.Process.Start (" Apagado "," -s -t 10 ");
B. Gestión de Windows (WMI)
http://www.csharpfriends.com/Forums/ShowPost.aspx?PostID=36953
http://www.dreamincode.net/forums/showtopic33948.htm
C. System.Runtime.InteropServices Pinvoke
http://bytes.com/groups/net-c/251367-shutdown-my-computer-using-c
D. Sistema de Gestión de
http://www.geekpedia.com/code36_Shut-down-system-using-Csharp.html
Después de enviar, por lo que he visto muchos otros también han publicado ...
+1 para opciones y enlaces –
Aunque digo que todavía estoy pensando, ¿cuándo una persona no solo usaría la primera opción? –
No estoy seguro de si alguien puede deshabilitar los derechos para la ejecución de shutdown.exe, en ese caso, uno podría necesitar código para ejecutar ... – lakshmanaraj
WindowsController es una clase contenedora C# en torno ExitWindowsEx.
En ocasiones resulta necesario reiniciar o apagar el sistema operativo de sus aplicaciones (por ejemplo, después de la instalación de un programa). El marco .NET que ofrece una forma indirecta para reiniciar el ordenador a través de los clases de administración de Windows (WMI) en el espacio de nombres System.Management , sin embargo, parece que hay algunos problemas en su aplicación.
Es por eso que hemos creado la clase WindowsController que implementa algunas funciones de API a reinicio y apagado de Windows. Es admite todos los modos ExitWindowsEx y también puede hibernar y suspender el sistema.
Esta clase está disponible en C# y versión VB.NET. Se puede compilar en un módulo .NET o en una biblioteca para ser utilizado desde otros lenguajes .NET. Desde depende de la API de Windows, no funciona en Linux o FreeBSD.
(mentalis.org)
También es posible usar InitiateSystemShutdown
http://www.pinvoke.net/default.aspx/advapi32.initiatesystemshutdown
using System;
using System.Runtime.InteropServices;
using System.Text;
public class Program
{
[DllImport("advapi32.dll") ]
public static extern bool InitiateSystemShutdown(string MachineName , string Message , uint Timeout , bool AppsClosed , bool Restart);
[DllImport("kernel32.dll") ]
public static extern uint GetLastError();
[DllImport("kernel32.dll") ]
public static extern uint FormatMessage(uint Flags , IntPtr Source , uint MessageID , uint LanguageID , StringBuilder Buffer , uint Size , IntPtr Args);
public static void Main()
{
InitiateSystemShutdown(System.Environment.MachineName, "hello", 0, false, false);
//InitiateSystemShutdown("localhost", "hello", 0, false, false);
}
}
- 1. ¿Cómo apago la cámara lenta en el simulador de iPhone?
- 2. ¿Cómo dibuja la computadora la pantalla?
- 3. ¿Cómo puedo obtener el nombre de la computadora y la dirección IP de la computadora local?
- 4. Cómo apagar la computadora desde C#
- 5. ¿Cómo oculto la navegación siguiente/actual/anterior en jQuery DatePicker y apago las animaciones?
- 6. ¿Reiniciar la computadora desde la aplicación WinForms?
- 7. El servicio de Windows creado para apagar la computadora no funciona cuando la computadora está bloqueada
- 8. Dominio de la computadora NetBIOS en PowerShell
- 9. ¿Cómo extraer el SID de la computadora/máquina?
- 10. ¿Cómo detectar cuando la computadora portátil funciona con baterías?
- 11. ¿Cómo puedo saber si la computadora se ha reiniciado?
- 12. ¿Cómo puedo sincronizar el reloj de la computadora al inicio?
- 13. ¿Cómo apagar la computadora desde un entorno independiente?
- 14. ¿Cómo encontrar si la computadora local está en un dominio?
- 15. ¿Cómo saber si la computadora está conectada a internet?
- 16. Cómo atrapar el Fn +? llaves en la computadora portátil?
- 17. ¿Cómo recuperar la dirección IP de esta computadora?
- 18. ¿Cómo identificar de manera única la computadora usando C#?
- 19. Cómo cargar imágenes desde la computadora del usuario
- 20. ¿Cómo recuerdan los bancos a "su computadora"?
- 21. Emulando Heroku en la computadora local
- 22. Desbloquee la computadora local usando .net
- 23. Controlar su teléfono desde la computadora portátil
- 24. Cómo ejecutar archivos php en mi computadora
- 25. Computadora única id
- 26. ¿Mantiene viva la sesión SSH mientras duerme la computadora?
- 27. Apagar una computadora
- 28. ejecutando a.out en otra computadora
- 29. Lector EventLogQuery para computadora remota?
- 30. Java - Obtenga la salida de sonido de la computadora actual
duplicados de http://stackoverflow.com/questions/102567/how-to-shutdown -the-computer-from-c – sharptooth