在.net中可以通过引用win32的FindWindow()获取一个打开程序的窗口句柄!
可是问题来了,如果一个程序有两个实例,且窗口名称完全相同,怎么才来获取这两个
窗口的句柄?
使用FindWindowEx API.
HWND WINAPI FindWindowEx(
In_opt HWND hwndParent,
In_opt HWND hwndChildAfter,
In_opt LPCTSTR lpszClass,
In_opt LPCTSTR lpszWindow
);
找第一个实例的时候hwndParent和hwndChildAfter都是null.
找下一个实例的时候hwndParent是Null, hwndChildAfter是第一次调用的返回值。
参考:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633500(v=vs.85).aspx
也可以使用EnumWindows遍历并且判断。