日期:2014-05-17 浏览次数:20724 次
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int GetWindowText(HandleRef hWnd, StringBuilder lpString, int nMaxCount);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int GetWindowTextLength(HandleRef hWnd);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern bool EnumWindows(EnumThreadWindowsCallback callback, IntPtr extraData);
[DllImport("user32.dll", ExactSpelling = true)]
private static extern bool EnumChildWindows(HandleRef hwndParent, EnumChildrenCallback lpEnumFunc, HandleRef lParam);
private delegate bool EnumThreadWindowsCallback(IntPtr hWnd, IntPtr lParam);
private delegate bool EnumChildrenCallback(IntPtr hwnd, IntPtr lParam, TreeNode parentNode);
private bool EnumWindowsCallback(IntPtr handle, IntPtr extraParameter)
{
int num1 = GetWindowTextLength(new HandleRef(this, handle)) * 2;
StringBuilder builder1 = new StringBuilder(num1);
GetWindowText(new HandleRef(this, handle), builder1, builder1.Capacity);
Application.DoEvents();
listBox1.Items.Add(string.Format("父:{0} Title: {1}", handle, builder1.ToString()));
TreeNode RootNode = new TreeNode(builder1.ToString());
this.treeView1.Nodes.Add(RootNode );
EnumChildWindows(new HandleRef(this, handle), new EnumChildrenCallback(EnumChildWindowsCallback), new HandleRef(null, IntPtr.Zero));