2016-02-03 5 views
6

プロセスが既に実行されているかどうかを知る必要がありますが、その名前をハードコードしたくありません。私はむしろ*.exeからそれを派生したいので、いくつかの実験を行い、プロジェクトプロパティでアセンブリ名をfooに設定し、その後foo.exebar.exeに変更した単純なコンソールアプリケーションを作成しました。実行中のプロセスを確認したところ、実行していたのはbarでした。プロセス名は常にexeの名前ですか?

この動作に依存する可能性がありますか、またはプロセスがexeとは異なる名前を持ち、すべての種類のexeファイルまたは.NETアセンブリのみに適用できますか?

答えて

6

あなたはcan't change the image nameのプロセスです。これはWindowsによって設定され、変更可能ではありません。実行ファイルの名前を使用して設定しますので、安全に使用できます。

代わりに実行可能ファイル名を取得するためのプロセスを使用しての、あなたは、単にthe assembly name from .NETを使用することができます。

System.AppDomain.CurrentDomain.FriendlyName 
+0

そして、まだを、 'explorer.exe'が表示され、タスクマネージャの「Windowsエクスプローラ」として –

+0

あなたが詳細を開きましたタブ?これは実際のプロセス名であり、ウィンドウのタイトルやファイルの説明ではありません。私には 'explorer.exe 'しか表示されません。 –

+0

ああ、それは_imageと呼ばれていませんでした名前:-)実際に私はあなたがリンクしている質問のOPにスリムなことをやっている、私は労働者を起動して、彼らがすでに実行されているかどうかを知りたい。 – t3chb0t