アプリケーションのインスタンス(vb.netではなく)がすでに実行中であるかどうかを調べようとしています。なぜなら、起動したいと思っていますが、すでに実行中の場合は起動したくないからです。プロセスが実行中かどうかを確認するソリューションを見つけました。> = 1(またはプロセス番号のみ)の場合はtrueを返します。VB.NETでプロセス名のリストを取得するにはどうすればよいですか?
私の問題は、これはサードパーティのアプリケーションであり、そのプロセス名は単なる名前ではありませんが、バージョン番号(実行時にはわかりません)が含まれていて、 32(おそらくx64にインストールされていれば* 64でしょうか?)
"processname"が名前の部分文字列であるかどうかをテストするには、名前で実行中のプロセスのリストを取得する必要があります。 しかし、私は名前のリストを取得するのに成功しておらず、プロセスIDのみを取得しています。
。 * 32の説明をありがとうございます。 – Thalia
@emptyheadedファイルの一番上に "Import System.Linq"を追加するだけで、Anyが動作するはずです。 LINQ拡張メソッド(http://msdn.microsoft.com/en-us/library/bb534972.aspx) –
@ Reduce Copsey:p.Name.Containsの代わりに 'p.ProcessName.Contains'にする必要はありませんか? .AnyがcaseINSensitiveであるかどうかはわかりません。そうでなければ、いくつかの追加の.ToUpperがプロセス名を検索するのに役立ちますか? – PeterCo