Esempio n. 1
0
        private void GetAllInfoByPrcName(String prcName)
        {
            List <WinFormModel> formInfos = new List <WinFormModel>();

            try
            {
                #region 根据进程名,获取所有对应窗口下的子句柄
                List <WindowInfo> list = WindowFormAPI.GetAllDesktopWindows().ToList();
                //List<WindowInfo> newwindows = list.Where(c => c.szWindowName.Contains(prcName)).ToList();
                List <WindowInfo> curFormList = new List <WindowInfo>();
                foreach (WindowInfo item in list)
                {
                    curFormList.AddRange(WindowFormAPI.GetAllDesktopWindows(item.hWnd));
                }

                //代理设置
                List <WindowInfo> newList = new List <WindowInfo>();
                foreach (var item in curFormList)
                {
                    List <WindowInfo> curList = newList.Where(c =>
                    {
                        bool retVal = false;
                        if (c.hWnd == item.hWnd && c.ItemId == item.ItemId)
                        {
                            retVal = true;
                        }
                        return(retVal);
                    }).ToList();

                    if (curList != null && curList.Count <= 0)
                    {
                        newList.Add(item);
                    }
                }


                //List<WindowInfo> curEditList = newList.Where(c => !string.IsNullOrEmpty(c.szWindowName) && c.szWindowName.Contains("代理设置")).ToList();


                List <WindowInfo> curEditList1 = list.Where(c => !string.IsNullOrEmpty(c.szWindowName) && c.szWindowName.Contains("EasyConnect")).ToList();

                List <WindowInfo> curEditList2 = curFormList.Where(c => !string.IsNullOrEmpty(c.szWindowName) && c.szWindowName.Contains("EasyConnect")).ToList();


                List <WindowInfo> curEditList3 = list.Where(c => !string.IsNullOrEmpty(c.szWindowName) && c.szWindowName.Contains("EasyConnect")).ToList();


                WindowInfo easyConnect = curEditList3.Where(c =>
                {
                    bool retVal = false;
                    List <WindowInfo> allConnect = WindowFormAPI.GetAllDesktopWindows(c.hWnd);
                    List <WindowInfo> existList  = allConnect.Where(d => d.ItemId == 1001).ToList();
                    if (existList.Count > 0)
                    {
                        retVal = true;
                    }
                    return(retVal);
                }).FirstOrDefault();

                List <WindowInfo> curConnectList = WindowFormAPI.GetAllDesktopWindows(easyConnect.hWnd);


                WindowInfo editHandler = curConnectList.Where(d => d.ItemId == 1001).FirstOrDefault();

                StringBuilder s = new StringBuilder(512);
                //标题
                //WindowFormAPI.GetWindowText(editHandler.hWnd, s, s.Capacity);

                WindowFormAPI.GetDlgItemText(editHandler.hWnd, editHandler.ItemId, s, s.Capacity);

                editHandler.szWindowName = s.ToString();


                //List<WindowInfo> curEditList2 = newList.Where(c => !string.IsNullOrEmpty(c.szClassName) && c.szClassName.Contains("ComboBox")).ToList();
                #endregion
            }
            catch (Exception ex)
            {
            }
        }