2009-12-23 119 views
20

我怎樣才能得到窗口句柄通過提供過程名稱或窗口標題在C#..給定的過程已在運行如何通過給出正在運行的進程名稱來獲取窗口句柄?

+2

看到這個讓子窗口:http://stackoverflow.com/questions/79111/net-c-getting-child-windows-when-you-only-have-a-process-handle-or -pid/79205#79205 – 2009-12-23 16:02:28

+0

您假定進程只有一個窗口。不是一個有效的假設。 – 2009-12-23 16:24:32

回答

35

您可以使用Process類。

Process[] processes = Process.GetProcessesByName("someName"); 

foreach (Process p in processes) 
{ 
    IntPtr windowHandle = p.MainWindowHandle; 

    // do something with windowHandle 
} 
+1

+1。好答案。這將工作,如果它是需要的主窗口句柄。 – David 2009-12-23 16:02:26

+8

請注意,如果主窗口隱藏,MainWindowHandle返回0 ... – 2009-12-24 01:11:26

+0

有沒有辦法在Java中執行此操作? – 2016-06-23 18:53:04