J'ai remarqué lorsque j'appuie sur Ctrl+ Alt+ Delet que je clique sur Gestionnaire des tâches, les appels Windows taskmgr.exe /3
comme commande. Plusieurs sites Web affirment que le Gestionnaire des tâches n'a aucun argument de ligne de commande.
Pourquoi Windows attache-t-il cet argument?
windows-7
command-line
task-manager
command-line-arguments
Martin Braun
la source
la source
LaunchTM.exe
dans ce%windir%\System32
qui le rend encore plus confus que je ne pouvais pas comprendre, en se basant sur ma recherche de Google, ainsi, son but d'existance et ce qu'il est bon pour en général.LaunchTM.exe
en a pas dans Windows 7, vous êtes sur Windows 8 je pense. Pourquoi ne pas créer ici une nouvelle question à ce sujet sur le superutilisateur? ;)Réponses:
Une analyse
Apparemment, ce n'est pas un comportement documenté. J'ai fait quelques tests et noté mes résultats:
Cliquez avec le bouton droit sur la barre des tâches, puis cliquez sur Démarrer le Gestionnaire des tâches .
Appuyez sur Ctrl+ Shift+ Esc.
Appuyez sur Ctrl+ Alt+ Del, puis sur Démarrer le Gestionnaire des tâches .
Démarrez un gestionnaire de tâches non élevé et cliquez sur le bouton Afficher les processus de tous les utilisateurs .
Tapez ou collez
taskmgr.exe
dans la barre de recherche du menu Démarrer, puis appuyez sur Enter; appuyez sur Win+ R, saisissez ou colleztaskmgr.exe
dans la zone de texte, puis appuyez sur Enter; accédez auSystem32
dossier et double-cliquez sur l'taskmgr.exe
exécutable; démarrez l'utilitaire de configuration système (msconfig.exe
), cliquez sur l' onglet Outils , sélectionnez l'élément Gestionnaire des tâches dans la liste, puis cliquez sur Lancer .Ouvrez une invite de commande, saisissez ou collez
taskmgr.exe
, puis appuyez sur Enter.Remarques
Les choses ont fonctionné de manière similaire pendant la phase de développement de Windows 8, jusqu'à la Release Preview. Windows Vista et les systèmes d'exploitation antérieurs ne sont pas affectés.
L'exécutable importe quelques fonctions API (à savoir
GetCommandLineW
etCommandLineToArgvW
) qui sont utilisées pour récupérer et analyser les arguments de ligne de commande.Le démarrage manuel du programme en utilisant l'un des arguments ci-dessus ne semble pas avoir d'effet notable.
Si je devais faire une supposition éclairée, je dirais que le paramètre numérique était censé être un indicateur de démarrage interne, éventuellement utilisé à des fins de débogage, puis laissé de côté.
la source
taskmgr /anything /startup
fonctionne, donc/startup
comme deuxième argument.Quelques notes:
Le simple fait qu'une commande soit envoyée ne signifie pas qu'un programme accepte ces arguments ou tout autre argument.
Par exemple:
J'ai appelé taskmanager avec ma propre commande étrange et le comportement n'a pas changé:
Du point de vue de la programmation de base, n'importe quelle application aura une méthode principale quelconque où les arguments peuvent être passés. Par exemple, une application Windows Form C # de base ressemble à quelque chose comme:
Si je passe des arguments amusants, rien ne se passe avec l'application, mais Process Explorer les intercepte et les affiche.
Cependant, si je décide explicitement de les gérer, vous obtiendrez une interaction à partir de la commande.
Et tout ce que j'avais à faire était de changer légèrement le point d'entrée du formulaire:
Maintenant, revenons à votre question sur pourquoi il est là:
Si vous accédez à taskmgr.exe à partir de la méthode ctrl+ alt+ del, vous voyez en effet l'argument de commande "/ 3". De plus, si vous utilisez ctrl+ shift+, escil passe / 2 et si vous cliquez avec le bouton droit sur la barre des tâches et cliquez sur "Démarrer le Gestionnaire des tâches", le commutateur affiché est / 4.
Tout cela m'amène à supposer qu'il y a peut-être quelque chose que Windows doit savoir, ou peut-être a été presque implémenté pour le gestionnaire de tâches que nous ne connaissons pas. Par exemple, la sécurité dans Windows peut vouloir savoir si ctrl+ alt+ a delété utilisé pour appeler taskmgr.exe et non un script ou un utilisateur. Encore une fois, de la pure spéculation, mais des fils comme celui-ci me font penser que cela aurait pu être au moins une pensée.
Pour l'infâme tl; dr
Pour savoir pourquoi Windows passe ces commandes, nous avons probablement besoin d'un membre de l'équipe de développement de Microsoft ou du code source. Il n'y a peut-être pas de meilleure réponse.
la source