C#からプログラムで外部サードパーティアプリケーションを開始します。 タスクマネージャに表示される名前を変更したいと思います。ファイルをコピーまたは名前を変更せずに、タスクマネージャーでプログラムで起動した外部アプリのタイトルを変更します。
EXEのコピーを作成したり、ファイルの名前を変更することは望ましくありません。 目的はプログラムで開始されたアプリを特定することです。タスクマネージャで同じアプリがユーザーによって手動で開始された場合
可能ですか?
C#からプログラムで外部サードパーティアプリケーションを開始します。 タスクマネージャに表示される名前を変更したいと思います。ファイルをコピーまたは名前を変更せずに、タスクマネージャーでプログラムで起動した外部アプリのタイトルを変更します。
EXEのコピーを作成したり、ファイルの名前を変更することは望ましくありません。 目的はプログラムで開始されたアプリを特定することです。タスクマネージャで同じアプリがユーザーによって手動で開始された場合
可能ですか?
プログラムの.exe
のファイル名が同じであると仮定すると、開始されたプロセスのPID
を使用することができます。たとえば:
var process = Process.Start("notepad.exe");
Console.WriteLine(process.Id);
あなたがする必要があるだろうすべては、そのIDを格納するだろう、とあなたが興味を持っている.exe
ファイル名に一致する他のプロセスをスキャンあなたは、その後のIDを比較することができると思います。ストアドIDとの一致があれば、プログラムで起動したかどうかを確認できます。
実際には、タスクマネージャでユーザーに通知したいと思います。プログラムでは、プロセスIDを使って私の開始プロセスを特定することができますが、私の心配は、ユーザーが手動でアプリケーションを起動していて、タスクマネージャからkillしたい場合は、2つのエントリが表示されます。もう一方はプログラム的に開始されました。私は開始したものに "DONT KILL"の接尾辞を付けたいと思います。 – AllSolutions
解決策はありますか? – AllSolutions
@AllSolutionsそれは可能性があります - マルウェアの作成者がそれを行いますが、アセンブリのバージョン情報は実行時に変更されるはずがありません。 –
そのアプリの_window_ titleを変更するだけでは不十分です(プロセスを拡張すると、ウィンドウマネージャの名前もタスクマネージャに表示されます)。 – Evk
実際には、ウィンドウを表示せずにサイレントモードでアプリを起動します。 – AllSolutions