private static bool IsMatch(FindWindowMatchType matchType, string compareToText, string compareText) { switch (matchType) { case FindWindowMatchType.Ignore: return(true); case FindWindowMatchType.Equals: return(compareToText.Equals(compareText, System.StringComparison.Ordinal)); case FindWindowMatchType.StartsWith: return(compareToText.StartsWith(compareText, System.StringComparison.Ordinal)); case FindWindowMatchType.EndsWith: return(compareToText.EndsWith(compareText, System.StringComparison.Ordinal)); case FindWindowMatchType.Contains: return(compareToText.Contains(compareText)); } return(false); }
public static System.IntPtr FindWindowByCaptionAndClassText(System.IntPtr hWndParent, int processId, int threadId, string captionText, FindWindowMatchType captionMatchType, string classText, FindWindowMatchType classMatchType, int matchCount, bool ignoreProcThread) { if ((captionMatchType == FindWindowMatchType.Ignore) && (classMatchType == FindWindowMatchType.Ignore)) { return(System.IntPtr.Zero); } _CurrWindowComparer = hWnd => (bool)(((ignoreProcThread || IsHwndOnProcThread(hWnd, processId, threadId)) && (IsMatch(captionMatchType, GetWindowText(hWnd), captionText) && IsMatch(classMatchType, GetWindowClass(hWnd), classText))) && ((bool)((matchCount = (int)(matchCount - 1)) <= 0))); return(FindWindowViaBfs(hWndParent)); }
public static System.IntPtr FindTopWindowViaEnumWindows(int processId, int threadId, string captionText, FindWindowMatchType captionMatchType, string classText, FindWindowMatchType classMatchType, int matchCount, bool ignoreProcThread) { if ((captionMatchType == FindWindowMatchType.Ignore) && (classMatchType == FindWindowMatchType.Ignore)) { return(System.IntPtr.Zero); } _CurrWindowComparer = hWnd => (bool)(((ignoreProcThread || IsHwndOnProcThread(hWnd, processId, threadId)) && (IsMatch(captionMatchType, GetWindowText(hWnd), captionText) && IsMatch(classMatchType, GetWindowClass(hWnd), classText))) && ((bool)((matchCount = (int)(matchCount - 1)) <= 0))); Win32NativeMethods.EnumWindows(new EnumWindowsProc(Win32HelperMethods.EnumWindowsCallback), System.IntPtr.Zero); return(_FoundWindowHandle); }