私はMutexを使用して、Microsoft Wordが現在ログインしているユーザーセッションでコンピュータで実行されているかどうかを知るために使用できるかどうかを理解していました。私は以下の例を試したが、どれも働いていなかった。.NETでログインしているユーザーセッションでMS Wordが実行されているかどうかを確認するためにmutexを使用できますか?
Ex1の:
using (Mutex mutex = new Mutex(false, "WINWORD.exe"))
{
if (mutex.WaitOne(0, false))
{
Console.WriteLine("Not running"); //Always printing
}
else
{
Console.WriteLine("Already running");
}
}
Ex2の:
bool createdNew;
Mutex m = new Mutex(false, "WINWORD.exe", out createdNew);
if (createdNew)
{
Console.WriteLine("Not running"); //Always printing
}
else
{
Console.WriteLine("Already running");
}
例の両方で、私は私のコンピュータで実行されているでWordを見ることができますが、それは、 "実行していない" の印刷です。ミュテックスの限界ですか?または私はここに何かを逃していますか?
これはジョブの間違ったツール(nvoitの回答が示しているように)以外に、あなたが実際に答える必要がある質問も考慮する必要があります。 Wordがこのマシン*で実行されているかどうか気になりますか、Wordが同じセッションで実行されているかどうか注意してください*。 Windowsは複数のユーザーがプログラムを実行してログインしていることをサポートしていますが、ユーザーAとしてログインしているときにWordがユーザーBに対して実行されていることを確認するにはかなりのアクセス許可が必要であり、b)あなたの全体的な問題(それはどういう意味ですか?) –
こんにちはDamien、私は同じセッションで単語が実行されている場合気にします。質問も更新されました。 –
こんにちはDamien、私はタイトルを更新した後、あなたが投票を元に戻すことを願っています。 –