Percebi que quando pressiono Ctrl+ Alt+ Dele clico em Gerenciador de tarefas, o Windows chama taskmgr.exe /3
como o comando. Vários sites afirmam que o Gerenciador de Tarefas não possui argumentos de linha de comando.
Por que o Windows anexa esse argumento?
windows-7
command-line
task-manager
command-line-arguments
Martin Braun
fonte
fonte
LaunchTM.exe
no%windir%\System32
que torna ainda mais confuso como eu não conseguia descobrir, baseando-se em minha busca google, bem como, o seu propósito de existência eo que é bom para em geral.LaunchTM.exe
no Windows 7, você está no Windows 8, eu acho. Por que não criar uma nova pergunta sobre isso aqui no superusuário? ;)Respostas:
Análise
Aparentemente, não é um comportamento documentado. Fiz alguns testes e observei minhas descobertas:
Clique com o botão direito do mouse na barra de tarefas e clique em Iniciar Gerenciador de Tarefas .
Pressione Ctrl+ Shift+ Esc.
Pressione Ctrl+ Alt+ Dele clique em Iniciar Gerenciador de Tarefas .
Inicie um Gerenciador de tarefas não elevado e clique no botão Mostrar processos de todos os usuários .
Digite ou cole
taskmgr.exe
na barra de pesquisa do menu Iniciar e pressione Enter; pressione Win+ R, digite ou coletaskmgr.exe
na caixa de texto e pressione Enter; navegue até aSystem32
pasta e clique duas vezes notaskmgr.exe
executável; inicie o utilitário de configuração do sistema (msconfig.exe
), clique na guia Ferramentas , selecione o item do Gerenciador de tarefas na lista e clique em Iniciar .Abra um prompt de comando, digite ou cole
taskmgr.exe
e pressione Enter.Observações
As coisas funcionaram de maneira semelhante durante a fase de desenvolvimento do Windows 8, até a Release Preview. O Windows Vista e os sistemas operacionais anteriores não são afetados.
As importações executáveis um par de API funções (nomeadamente
GetCommandLineW
eCommandLineToArgvW
) que são usados para recuperar e argumentos de linha de comando de análise.Iniciar manualmente o programa usando qualquer um dos argumentos acima parece não ter nenhum efeito perceptível.
Se eu tivesse que fazer um palpite, eu diria que o parâmetro numérico deveria ser um indicador de inicialização interno, possivelmente usado para fins de depuração e depois deixado para trás.
fonte
taskmgr /anything /startup
funciona, assim/startup
como o segundo argumento.Algumas notas:
Só porque um comando é enviado, não significa que um programa aceite esses argumentos, ou qualquer outro.
Por exemplo:
Liguei para taskmanager com meu próprio comando ímpar e o behavoir não mudou:
Do ponto de vista da programação básica, qualquer aplicativo terá um método principal de algum tipo no qual argumentos podem ser passados. Por exemplo, um aplicativo básico do Windows Form C # se parece com:
Se eu passar alguns argumentos engraçados, nada acontece com o aplicativo, mas o Process Explorer os captura e os exibe.
Se eu decidir explicitamente lidar com eles, você obterá interação do comando.
E tudo que eu tinha que fazer era mudar um pouco o ponto de entrada do formulário:
Agora, voltemos à sua pergunta sobre por que ela está lá:
Se você acessar taskmgr.exe a partir do método ctrl+ alt+ del, verá o argumento de comando "/ 3". Além disso, se você usar ctrl+ shift+ esc, passa em / 2 e se clicar com o botão direito do mouse na barra de tarefas e clicar em "Iniciar Gerenciador de Tarefas", a opção mostrada será / 4.
Tudo isso me leva a supor que talvez exista algo que o Windows precise saber ou talvez tenha sido quase implementado para o Gerenciador de Tarefas que desconhecemos. Por exemplo, a segurança no Windows pode querer saber se o ctrl+ alt+ delfoi usado para chamar taskmgr.exe e não um script ou usuário. Novamente, pura especulação, mas tópicos como esse me fazem pensar que poderia ter sido pelo menos um pensamento.
Para o infame tl; dr
Para saber por que o Windows passa esses comandos, provavelmente precisamos de um membro da equipe de desenvolvimento da Microsoft ou do código-fonte. Pode não haver uma resposta melhor.
fonte