//枚举窗口句柄 public void GetMainWindowHandle(int processId) { Aero aero = new Aero(); Win32Api.EnumWindows(new Win32Api.EnumWindowsProc((hWnd, lParam) => { IntPtr PID; Win32Api.GetWindowThreadProcessId(hWnd, out PID); if (PID == lParam && Win32Api.IsWindowVisible(hWnd) && Win32Api.GetWindow(hWnd, Win32Api.GW_OWNER) == IntPtr.Zero) { StringBuilder name = new StringBuilder(256); StringBuilder ClassName = new StringBuilder(256); Win32Api.GetWindowText(hWnd, name, 256); Win32Api.GetClassName(hWnd, ClassName, 256); if (ClassName.ToString() != "WorkerW")//防止Aero桌面 { //所有窗口附加Aero if (State[0]) { aero.LoadAero2(hWnd); } else { aero.LoadAero1(hWnd); } } } return(true); }), new IntPtr(processId)); }