{
StringBuilder lpClassName = new StringBuilder(128);
if (GetClassName(hWnd, lpClassName, lpClassName.Capacity) == 0)
{
throw new Exception("not found IntPtr!");
}
return lpClassName.ToString();
}
思考:遍历桌面上所有的窗口,然后找类名,然后改他的 Text,扯淡嘛,相同的类名太多了,找毛呀。
实现:不仅记录类名,而且记录类名在父窗口出现的位置,然后通过桌面一层层找下来,最后找到这个句柄。(虽然不是太准,但是一般的还是能解决了,如
果你有什么好方式一起研究)。
过程四:实现一个 WinHWND 的类,可以把他的规则,他的父窗口类名,以及在父窗口中同类名出现的顺序记录下来,然后通过这些记
录的信息还原句柄。
View Code
public class WinHWND
{
public IntPtr HWND { get; set; }
public string ClassName { get; set; }
public WinHWND Parent { get; set; }
public int InParentSequence { get; set; }
private WinHWND() { }