Beispiel #1
0
        // Wait for a window to become available
        public static int WinWait(string className, string windowName, WinMatchMode mode = WinMatchMode.Start, long timeout = 0)
        {
            int  hWnd      = 0;
            int  pollDelay = 250;
            long startTime = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;

            while ((DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond) - startTime < (timeout * 1000) &&
                   hWnd == 0)
            {
                hWnd = FindWindow(className, windowName, mode);
                Thread.Sleep(pollDelay);
            }

            return(hWnd);
        }
Beispiel #2
0
        private static int FindWindow(string className, string windowName, WinMatchMode mode = WinMatchMode.Start)
        {
            switch (mode)
            {
            case WinMatchMode.Exact:
                return(WinApi.FindWindow(className, windowName));

            case WinMatchMode.Start:
                return(FindWindowStart(className, windowName));

            case WinMatchMode.Any:
                return(FindWindowAny(className, windowName));

            default:
                return(0);
            }
        }
Beispiel #3
0
 // Retrieves the internal handle of a window.
 // Example: int hWnd = Automate.WinGetHandle("KCMLMasterForm_32", "OWS Version2");
 public static int WinGetHandle(string className, string windowName, WinMatchMode mode = WinMatchMode.Start)
 {
     return(FindWindow(className, windowName, mode));
 }
Beispiel #4
0
 // Check if a window exists
 public static bool WinExists(string className, string windowName, WinMatchMode mode = WinMatchMode.Start)
 {
     return(FindWindow(className, windowName, mode) != 0 ? true : false);
 }