Comment arrêter mon ordinateur en utilisant C#?Comment éteindre l'ordinateur?
Répondre
Un moyen facile: Utilisez Process.Start pour exécuter shutdown.exe.
shutdown /s /t 0
façon Programmatic: P/Invoke un appel à ExitWindowsEx
Ce serait la signature P/Invoke:
[DllImport("aygshell.dll", SetLastError="true")]
private static extern bool ExitWindowsEx(uint dwFlags, uint dwReserved);
Dans tous les cas, l'utilisateur exécutant le code aura besoin système d'arrêt privilèges (normalement pas un problème, mais un point important à retenir).
Diriez-vous un peu comment une personne choisirait entre les deux méthodes? Ou est-ce simplement facile vs pas si facile? –
Je voudrais nromally aller à la deuxième option dans le logiciel de production, car il vous donne plus de contrôle (raisons d'arrêt, etc). Cela prend un peu plus de temps à mettre en place, car je devrais rechercher le bon drapeau et la signature. – driis
à une supposition (non testé):
Process.Start("shutdown", "-s -t 0");
Utilisez une variante du code "fermeture de session utilisateur" montré here.
Ce code utilise l'appel API ExitWindowsEx
.
La dure, fonctionne parfaitement sur les ordinateurs portables, mais il faut un certain temps:
Spawn a couple endless loops in more threads than cpu cores.
Wait for overheat which will automatically shutdown a computer.
:)
Tellement de downvotes! Était-ce seulement moi qui trouvais la réponse amusante? – Marcel
amusant, donc +1. Rappelez-vous: Tout le travail et pas de jeu fait Jack un garçon ennuyeux .. –
méthodes différentes:
A. System.Diagnostics.Process.Start (» Arrêt "," -s -t 10 ");
B. Windows Management Instrumentation (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. Système de gestion
http://www.geekpedia.com/code36_Shut-down-system-using-Csharp.html
Après mon avis, je l'ai vu tant d'autres ont également affiché ...
+ 1 pour les options et les liens –
Bien que disant que je pense encore - quand une personne non seulement usera-t-elle la première option? –
Je ne suis pas sûr si quelqu'un peut désactiver les droits pour l'exécution de shutdown.exe, dans ce cas, on pourrait avoir besoin de code pour exécuter ... – lakshmanaraj
WindowsController est un C# classe wrapper autour ExitWindowsEx.
Parfois, vous devez redémarrer ou arrêter le système d'exploitation de vos applications (par exemple, après l'installation d'un programme). Le framework .NET vous offre un moyen indirect pour redémarrer l'ordinateur via Windows Management Instrumentation classes (WMI) dans l'espace de noms System.Management , cependant, il semble y avoir quelques problèmes dans leur mise en œuvre.
Voilà pourquoi nous avons créé le WindowsController classe qui implémente certaines fonctions API pour redémarrage et l'arrêt de Windows. Il prend en charge tous les modes ExitWindowsEx et il peut également hiberner et suspendre le système. Cette classe est disponible en C# et version VB.NET. Il peut être compilé à un module .NET ou à une bibliothèque pour être utilisé à partir d'autres langages .NET. Depuis il repose sur l'API Windows, il ne fonctionnera pas sur Linux ou FreeBSD.
(mentalis.org)
Vous pouvez également utiliser 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. Éteindre l'écran
- 2. Comment éteindre le GPS par programmation sur un Blackberry
- 3. Comment éteindre correctement l'alimentation du moniteur en C#?
- 4. Utiliser le capteur de proximité sans éteindre l'écran
- 5. Y at-il une fonction C++ pour éteindre l'ordinateur?
- 6. En utilisant une référence de port IOService pour éteindre un dispositif
- 7. Éteindre un ordinateur distant connecté en LAN dans une langue préférable
- 8. Comment puis-je désactiver tous les symboles et points de mise en forme dans l'IDE Flash?
- 9. arrêter un disque dur
- 10. Points d'interrogation après les images et fichiers js/css dans les rails. Pourquoi?
- 11. boutons de zoom dans le navigateur Web Android
- 12. Comment désactiver l'optimisation (-02) pour les modules Apache construits avec APXS
- 13. Comment mettre hors tension le débogage de script Visual Studio 2008
- 14. Comment brancher des lumières LED en C++ sans microcontrôleur?
- 15. Comment fermer immédiatement/fermer le classeur Excel VSTO lors de la personnalisation de l'assemblage introuvable
- 16. Comment désactiver complètement toutes les boîtes de dialogue d'erreur Internet Explorer Script
- 17. Comment générer des fichiers pdb pour des versions parallèles?
- 18. Est-il possible que les redémarrages de travail IIS ou ASP.NET terminent les processus enfants démarrés par le site Web?
- 19. Check Panel pour activer/désactiver la visibilité
- 20. Désactiver Tag Navigator dans VS2008
- 21. Transactionscope ne fonctionne pas lorsque deux connexions sql distantes
- 22. Contrôle de l'éclairage avec l'Arduino
- 23. Si une exception non gérée se produit, je dois arrêter l'application WPF?
- 24. Masquer Radiobox et le nom de la case à cocher sur Visual Studio Design View
- 25. La LED du combiné Android peut-elle être manipulée sans utiliser d'objet Notification?
- 26. Dépendance Cache Off provoquant exception
- 27. Avec plusieurs adresses IP dans la poignée de domaine, comment les adresses IP défaillantes sont-elles gérées?
- 28. Quelqu'un a un bon moyen de déboguer WPF focus?
- 29. Les templates Smarty téléchargés lors d'un site à trafic élevé provoquent une page blanche
- 30. La meilleure façon de créer un formulaire avec Html.BeginForm() qui devrait être SSL?
en double de http://stackoverflow.com/questions/102567/how-to-shutdown -le-ordinateur-de-c – sharptooth