Windows7によって引数付きで呼び出されたtaskmgr.exe



Taskmgr Exe Called With An Argument Windows 7



解決:

分析

どうやらそれは文書化された振る舞いではありません。私はいくつかのテストを行い、私の発見に注目しました:

  • タスクバーを右クリックして、 タスクマネージャーを起動します



    'C: Windows  system32  taskmgr.exe' / 4
  • Ctrl + Shift + Escを押します。

    taskmgr.exe / 2
  • Ctrl + Alt + Delを押して、 タスクマネージャーを起動します



    taskmgr.exe / 3
  • 昇格されていないタスクマネージャーを起動し、[ すべてのユーザーのプロセスを表示する ボタン。

    'C: Windows  system32  taskmgr.exe' / 1
  • 入力または貼り付けスタートメニューの検索バーでtaskmgr.exeを選択し、Enterキーを押します。 Win + Rを押して、入力または貼り付けますテキストボックスにtaskmgr.exeを入力し、Enterキーを押します。に移動しますSystem32フォルダーをダブルクリックし、taskmgr.exe実行可能ファイル;システム構成ユーティリティを起動します(msconfig.exe)をクリックし、 ツール タブで、リストからタスクマネージャアイテムを選択し、をクリックします 発売

    'C: Windows  system32  taskmgr.exe'
  • コマンドプロンプトを開き、入力または貼り付けますtaskmgr.exeをクリックし、Enterキーを押します。



    taskmgr.exe

備考

  • Windows 8の開発段階からリリースプレビューまで、同じように機能しました。 WindowsVista以前のオペレーティングシステムは影響を受けません。

  • 実行可能ファイルは、いくつかのAPI関数(つまり、GetCommandLineWおよびCommandLineToArgvW)は、コマンドライン引数を取得して解析するために使用されます。

  • 上記の引数のいずれかを使用してプログラムを手動で開始しても、目立った効果はないようです。

知識に基づいて推測する必要がある場合、数値パラメーターは内部の起動インジケーターであり、デバッグ目的で使用された後、取り残される可能性があると言えます。


いくつかの注意:

コマンドが送信されたからといって、プログラムがそれらの引数などを受け入れることを意味するわけではありません。

例えば:

私は自分の奇妙なコマンドでタスクマネージャーを呼び出しましたが、動作は変わりませんでした。

ここに画像の説明を入力してください

基本的なプログラミングの観点から、どのアプリケーションにも、引数がある種のメインメソッドがあります。 できる たとえば、基本的なWindowsフォームC#アプリケーションは次のようになります。

private void Form1_Load(object sender、EventArgs e){}

面白い引数を渡すと、アプリケーションには何も起こりませんが、ProcessExplorerはそれらをキャッチして表示します。

ここに画像の説明を入力してください

ただし、明示的にそれらを処理することにした場合は、コマンドから対話を取得します。

ここに画像の説明を入力してください

そして、私がしなければならなかったのは、フォームのエントリポイントをわずかに変更することだけでした。

private void Form1_Load(object sender、EventArgs e){文字列引数= Environment.GetCommandLineArgs()[1]; this.Text =引数; }

さて、なぜそこにあるのかというあなたの質問に戻りましょう:

ctrl + alt + delメソッドからtaskmgr.exeにアクセスすると、実際にコマンド引数 '/ 3'が表示されます。また、ctrl + shift + escを使用すると、/ 2が渡され、タスクバーを右クリックして[タスクマネージャーの開始]をクリックすると、表示されるスイッチは/ 4になります。

これらすべてから、Windowsが知っておく必要のあることがあるか、または私たちが知らないタスクマネージャー用にほぼ実装されているのではないかと思います。たとえば、Windowsのセキュリティでは、スクリプトやユーザーではなく、ctrl + alt + delがtaskmgr.exeの呼び出しに使用されたかどうかを知りたい場合があります。繰り返しますが、純粋な憶測ですが、このようなスレッドは、少なくとも考えられたのではないかと私に思わせます。


悪名高い人のために tl; dr

Windowsがこれらのコマンドを渡す理由を知るには、Microsoftの開発チームのメンバーまたはソースコードが必要になる可能性があります。これ以上の答えはないかもしれません。