Пример #1
0
        //显示/隐藏所有进程相关的窗体(如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);
            }
        }
Пример #2
0
 //显示/隐藏所有窗体及窗体托盘图标
 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);
     }
 }