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) { } }