我想知道應用程序(不是vb.net)的一個實例是否已經運行 - 因爲我想啓動它,但如果它已經在運行,我不想啓動它。我已經找到了解決,以檢查是否一個進程正在運行:如何獲取在VB.NET中運行的進程名稱列表?
Dim proc As Integer = Process.GetProcessesByName(ProcessName).GetUpperBound(0) + 1
和返回真,如果> = 1(或只是過程數)。
我的問題是,這是一個第三方應用程序,它的進程名稱不只是一個名稱,但它包含一個版本號(我可能不知道在運行時),它似乎也添加了* 32(如果安裝在x64中,那麼可能是* 64)。
我需要按名稱獲取正在運行的進程的列表,並測試「processname」是否爲名稱的子字符串。 但我沒有成功獲取名稱列表,只有進程ID。
我都試過,但 「任何」 不工作。謝謝你解釋* 32。 – Thalia
@emptyheaded只需在您的文件頂部添加「Import System.Linq」,Any應該可以工作。這是一個LINQ擴展方法(http://msdn.microsoft.com/en-us/library/bb534972.aspx) –
@Reed Copsey:它應該不是'p.ProcessName.Contains'而不是p.Name.Contains?我不確定是否。任何情況都是不敏感的。否則,一些額外的.ToUpper將有助於搜索過程名? – PeterCo