2009-04-25 11 views
0

システムプロセスを使用せずに現在実行中のアプリケーションを取得するにはどうすればよいですか?C#:現在のプロセスを見つける

+0

真剣に、より詳細な情報が必要です。私たちが最高の答えを提供できるように、少し背景と長い質問はどうですか?そして、現在正確に綴ってください... –

+1

@shhnap:来て、素敵な土曜日です。太陽が輝いていて、合理的な答えがあります。あなたの(実際には間違った)コメントを削除してください。 –

+1

私は医者だけが神の複合体を持っていると思っていましたが、プログラマーとのより大きな複合体が存在します、あなたは正しいDavidです、ここの人々は絶対偉大な自我を持っています。貧しい男は絶対的な正当な質問のために-4を得た。私からの正しい質問のために+1。 –

答えて

6

あなたが探しているものによって異なります。あなたに電話をしているアセンブリに興味があるなら、GetCallingAssemblyを使うことができます。 GetExecutingAssemblyを使用することもできます。

0
System.Diagnostics.Process.GetProcesses("MACHINEHAME") 
0

ここでもやや誤解があります。どのマシンでも、現在実行中のプロセスは複数存在することがあります。マシンに複数のCPUがある場合を考えてみましょう。実際には、各CPUに少なくとも別々のスレッドが実行されている可能性があります。ある時点で、マシン上で現在実行されているプロセスの数は、システム上のプロセッサの数に近づく可能性が非常に高いです。

シングルプロセッサの場合、現在実行中のプロセスを取得する動作は冗長です。それは単にあなたのアプリケーションになります。

Processクラスを使用せずに現在のマシンで実行中のプロセスを調べたい場合は、Process32FirstおよびProcess32NextシステムコールにPInvokeできます。

0

.NETを使用している場合は、どのようなメカニズムを使用しても、.NETコードのアクセスセキュリティに注意する必要があります。使用しているクラス、メソッドが完全に信頼できるかどうかを確認するには、MSDNのドキュメントを参照してください。これは、アプリケーションが部分的な信頼またはより低い特権の信頼環境で実行されることになっている場合、問題となる可能性があります。

関連する問題