示例#1
0
        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);
        }
示例#2
0
 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));
 }
示例#3
0
 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);
 }