2010-06-28 122 views
1

我期待從進程名稱轉到windows標題。如何使用vb.net獲取進程的窗口標題

例如

'winamp.exe' - >'1。布蘭妮斯皮爾斯 - 打我的寶寶一次」

感謝

解決方案:

Dim p As Process 

For Each p In Process.GetProcessesByName("winamp") 

    MsgBox(p.MainWindowTitle.ToString) 

Next 
+1

'ToString'在你的代碼中是完全多餘的。 'MainWindowTitle'已經*了一個字符串! – 2010-06-28 10:23:37

+0

謝謝opps我的壞:p – Pablo 2010-06-28 18:29:05

+0

Upvote for the window title。 – SamJakob 2017-04-10 12:04:24

回答

1

看一看的System.Diagnostics.Process類:

Process p = <Get process> 
Console.WriteLine(p.MainWindowTitle) 
+0

謝謝.. MainWindowTitle是我需要的:) – Pablo 2010-06-28 09:40:08

0

這裏是如何得到文件名作爲顯示在主標題欄中。這是沒有擴展名的文件名。比方說,我的Excel工作簿被命名爲「ThisWorks.xlsx」此代碼返回「ThisWorks」沒有文件擴展名。

Function OpenAppFileNames(ByVal exeName As String) As String 

    Dim p() As Process = System.Diagnostics.Process.GetProcessesByName(exeName) 
    Dim i As Integer = 0 
    Dim x As Integer = UBound(p) + 1 
    Dim Index As Long = 0 
    Dim Title As String = "" 
    Dim Result As String = "" 
    Debug.Print(x) 
    Do 
     If i = x Then 
      Exit Do 
     End If 
     Title = p(i).MainWindowTitle 
     Result += vbNewLine & "Index " & Index + i & " = " & Title 
     i = i + 1 
     'MsgBox(Result) 
    Loop Until i = x 

    Return Result 

End Function 

p返回從0(零)開始的整數數組。如果您知道進程的順序,您可以返回所需目標的標題/文件名。

希望這會有所幫助......花了3個星期才找到這個答案。

+0

需要注意的是,有些應用程序只能打開單個實例,如MS Word和MS Excel,但該單個實例可能會打開多個工作簿。 – rogue5pawn 2013-11-09 02:29:41