Comment envoyer la commande Shutdown pour traiter via l'invite CMD sous Windows
Je travaille actuellement en tant que développeur de logiciels et je suis en utilisant des tas d'outils, j'ai donc besoin de tout fermer lorsque vous avez terminé avec le travail. Donc, ce que j'ai fait j'ai créé le fichier de commandes avec la tskill de commande et la liste des programmes que j'utilise par exemple
tskill skype
tskill outlook
tskill devenv
tskill explorer
start explorer
Il y a un problème avec cela, des changements dans les outils ne sont pas enregistrées lorsque le processus est tué, pour exampl dernier projet, les fichiers ouverts, visual postes de contrôles et tous les autres trucs. Ces paramètres sont enregistrés uniquement lorsque vous fermez votre outil, mais il est vraiment temps de cliquer sur chacun d'eux.
Donc ma question est: puis-je envoyer la commande d'arrêt à un logiciel plutôt que la mise à mort?
Remarque: j'ai besoin de commande de la commande CMD, et non pas la programmation de la solution, comme je l'ai mentionné ci-dessus j'ai besoin de commande, comme "tskill skype" qui tue skype processus. Windows pouvez envoyer cette commande, parce que quand vous arrêtez votre windows, windows est de l'envoi de la commande d'arrêt de tous les programmes en cours d'exécution. Mais si ne peut pas être l'arrêt de windows, puis tuer les processus comme je le fais ci-dessus.
Merci d'avance.
source d'informationauteur Senad Meškin
Vous devez vous connecter pour publier un commentaire.
Testé sur Windows 7:
Notez que vous devez spécifier le
.exe
extension. Je suppose que ce n'est ce qu'il vous faut: Il ne se contente pas de tuer le processus, mais envoie le "shutdown" du signal, ce qui permet d'afficher l'option "Enregistrer les modifications non enregistrées?" dialogue dans le bloc-notes et d'autres éditeurs.Si votre application support standard de windows messages pour cela vous pouvez utiliser
rmtool
de mentir à l'application et dites-lui que l'ordinateur est en cours d'arrêt. Voir Comment simuler l'arrêt de Windows pour le débogage?De script, vous aurez besoin de trouver le PID du processus avant (
pslist
de sysinternals donner les informations, mais vous aurez besoin d'analyser le résultat).Et si ils ne le font pas se fermer correctement il suffit de faire comme windows ne quand il à proximité : Utilisation rmtool de demander à tous d'entre eux à quitter gentiment puis 30s-ci de tuer tout le monde encore debout (Pour outlook et devenv il pourrait même être un peu court...).
Il n'y a aucun moyen d'envoyer la commande enregistrer, avant de terminer le processus (du moins pas avec un fichier de commandes), mais vous pouvez le faire manuellement à partir de C# (application console?).
J'ai utilisé VS défini raccourci pour Fichier->Enregistrer Tous les
Il est également plus difficile, d'utiliser l'Api Windows, mais vous ne voulez pas aller dans cette voie pour de simples app 🙂
Remarque: Vous avez besoin de faire référence au Système.De Windows.Les formes