Quelle est la bonne façon de fermer / quitter des programmes en ligne de commande, comme si vous appuyiez sur le bouton de fermeture "X" dans le coin de la fenêtre?
J'essaie de fermer chrome sous 3 versions différentes de Windows: Win7 Ultimate, Win7 Home, WinXP
Sous Ultimate et XP: TSKILL chrome
Sous la maison TASKKILL /IM chrome.exe
TSKILL chrome
:
(Il ferme chrome, pas d'erreurs cmd,
mais les erreurs chromées sont restaurées lorsque vous le relancez)
TASKKILL /IM chrome.exe
:
(Il ferme chrome, aucune erreur de chrome lors de la relance,
mais des erreurs dans cmd: "impossible de terminer les processus enfants (environ 4-5), uniquement par la force avec /F
")
Dois-je ignorer les erreurs de commande cmd si relance chrome ne me montrer aucune erreur ?
la source
Réponses:
La manière correcte de fermer / quitter un programme dépend finalement du logiciel. Toutefois, il est généralement recommandé de fermer les programmes Windows dès qu’ils reçoivent le message WM_CLOSE. Libérer correctement la mémoire et fermer les poignées. D'autres messages peuvent signaler la fermeture de l'application, mais il appartient à l'auteur du logiciel de gérer le traitement de chaque message.
taskkill envoie le message WM_CLOSE et il appartient ensuite à l'application de fermer correctement ou non. Vous pouvez également utiliser cette
/T
option pour signaler également les processus enfants.Utilisez cette
/F
option uniquement si vous souhaitez forcer la fin du processus.D'autres options incluent l'envoi des touches Alt + F4, à l'aide de PowerShell ou d'applications tierces.
Mettre à jour une question mise à jour
Ignorez les erreurs. Chrome génère de nombreux processus. Les erreurs surviennent lorsqu'un processus ne reconnaît pas le message WM_CLOSE envoyé par TASKKILL. Seuls les processus avec une boucle de message pourront recevoir le message. Par conséquent, les processus qui ne possèdent pas de boucle de message généreront cette erreur. Très probablement, ces processus sont les extensions et les plug-ins de chrome.
Pour masquer les erreurs capturer la sortie
Résumé: TASKKILL est le moyen approprié via la ligne de commande pour fermer les applications en fonction de son implémentation WM_CLOSE et de la base de connaissances Microsoft que j'ai liée .
la source
>
est l'opérateur de redirection pour le cmd.exe etnul
est le vide d'espace où les choses vont jamais être entendu de nouveau.Essayez NirCmd (Téléchargement: x86 x64 )
Il a la commande "closeprocess" qui est conçue pour fermer les processus en douceur. Conformément à son document, il ne met pas fin aux applications mais envoie
WM_CLOSE
à toutes les fenêtres de niveau supérieur du processus cible.exemple d'utilisation:
Si cela ne fonctionne pas, je parie que votre application nécessite une procédure de nettoyage inhabituelle. J'aimerais voir ce qui se passe à l'intérieur, alors faites-le-moi savoir quelle est votre application cible.
la source
La réponse à cette question peut être trouvée
here
( lien Microsoft ).Vous pouvez envoyer des
WM_CLOSE
messages à n’importe quelle fenêtre que vous souhaitez fermer. De nombreuses fenêtresWM_CLOSE
permettent d'inviter l'utilisateur à enregistrer des documents.Un outil qui fait cela correctement est
@Kill
. Regardez aussi SendMsg .Je ne sais pas comment procéder par lots, mais vous pouvez utiliser vbscript pour cela. Simulation des touches Alt+ F4(équivaut à signaler
WM_CLOSE
).Exécuter et regarder le comportement de ce script ci-dessous.
Here
est la liste des noms de clé pour SendKeys.Lorsque vous exécutez le script, le bloc - notes est ouvert, des mots sont écrits, puis un signal de fermeture du programme est délivré, voir l'image ci-dessous.
Questions supplémentaires
Puis-je démarrer un programme réduit ou fond avec vbscript?
Oui. Utilisez le code suivant:
Pour plus d'informations, consultez le
Run Method
.Chrome peut-il accéder à une URL dans vbscript?
Si chrome est la valeur par défaut, utilisez:
Source
Existe-t-il un moyen de mettre en évidence une application spécifique ( chrome.exe )?
Here
dans un exemple.Je veux envoyer alt + f4 UNIQUEMENT à chrome, indépendamment de ce que je fais avec d'autres fenêtres.
Le code suivant fonctionne sous Windows 8 .
la source
Certains utilitaires de ligne de commande peuvent envoyer un
WM_SYSCOMMAND
message approprié (avecSC_CLOSE
la commande) à la fenêtre de niveau supérieur d'un programme. Je suis sûr qu'au moins un d'entre eux sera mentionné sous peu. (Ensuite, quelqu'un mentionnera AutoIt. Ensuite, une réponse vous expliquera comment procéder avec PowerShell etCloseMainWindow()
.)L'utilitaire de ligne de commande fourni en tant que commande intégrée dans TCC , un interpréteur de commandes et un processeur de script de commande pour Windows, est appelé
TASKEND
.la source
Bon, je ne vais pas mentir. J'ai vu cela sur stackoverflow et j'ai pensé que c'était une question difficile. Soooo je viens de passer les 2 dernières heures à écrire du code. Et le voici ....
Après avoir suivi les étapes ci-dessous, vous pouvez taper "TaskClose notepad.exe" après avoir cliqué sur "Démarrer" pour enregistrer automatiquement tous les fichiers du bloc-notes non documentés sur le bureau. Il ferme automatiquement chrome.exe et enregistre les paramètres de restauration.
Vous pouvez ajouter et supprimer des paramètres supplémentaires pour d'autres applications dans les conditions if. Par exemple:
Les fichiers vbs et batch exécutent les procédures suivantes:
ReturnAppList.bat: installer dans "C: \ windows \ system32 \"
TaskClose.bat: installer dans "C: \ windows \ system32 \" ET "C: \ Utilisateurs \ VotreNomUtilisateur \"
TaskClose.vbs: installer dans "C: \ windows \ system32 \"
C'était très amusant d'écrire et je suis plus heureux de le terminer que de montrer la réponse. Passe une bonne semaine!
la source