//显示/隐藏所有进程相关的窗体(如QQ) public static void SetWindowVisible(IntPtr owner, bool visible) { try { //const string CLASS_PARENT = "TXGuiFoundation"; //const string CLASS_CHILD = "ATL:006CC4D0"; //窗体的子窗体 //IntPtr p = Win32API.FindWindowEx(owner, IntPtr.Zero, CLASS_CHILD, string.Empty); StringBuilder title = new StringBuilder(256); StringBuilder className = new StringBuilder(256); Win32API.GetWindowText(owner.ToInt32(), title, title.Capacity);//得到窗口的标题 if (title.ToString().Trim() != "") { Win32API.GetClassName(owner, className, className.Capacity); } Win32API.ShowWindow(owner, visible ? Win32API.SW_SHOW : Win32API.SW_HIDE); //显示/隐藏托盘图标 WindowHide.SetTrayIconVisible(title.ToString(), visible); } catch (Exception ex) { LogManage.WriteLog(typeof(WindowHide), ex); } }
//显示/隐藏所有窗体及窗体托盘图标 public static void SetMSNWindowVisible(IntPtr owner, string caption, bool visible) { try { //显示/隐藏MSN窗体 IList <WindowInfo> list = WindowHide.GetMSNWindowList((int)owner); foreach (WindowInfo wi in list) { Win32API.ShowWindow(wi.Handle, visible ? Win32API.SW_SHOW : Win32API.SW_HIDE); //Win32API.CloseHandle(wi.Handle); } //显示/隐藏MSN托盘图标 WindowHide.SetTrayIconVisible("caption", visible); } catch (Exception ex) { LogManage.WriteLog(typeof(WindowHide), ex); } }