如何通过给定正在运行的进程名称获取窗口句柄?

32

如何在C#中通过进程名称或窗口标题获取窗口句柄,假设该进程已经在运行中


2
查看此链接以获取子窗口:https://dev59.com/6HVD5IYBdhLWcg3wHn2d#79205 - user195488
1
你假定一个进程只有一个窗口。这不是一个有效的假设。 - Hans Passant
1个回答

61
您可以使用 Process 类。
Process[] processes = Process.GetProcessesByName("someName");

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

    // do something with windowHandle
}

1
+1。好答案。如果需要的是主窗口句柄,这个方法可以使用。 - David
在Java中有没有一种方法可以做到这一点? - Jordy Baylac
我想在Java中实现这个,但是找不到方法。你能告诉我们如何在Java中实现吗? - Amol Suryawanshi
2
如果 p.MainWindowHandle = hidden,则无法工作。 - Avrohom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接