public static IDictionary <IntPtr, string> GetOpenWindows()
 {
     try
     {
         IntPtr lShellWindow = SEBWindowHandler.GetShellWindow();
         Dictionary <IntPtr, string> lWindows = new Dictionary <IntPtr, string>();
         SEBWindowHandler.EnumWindows((SEBWindowHandler.EnumWindowsProc)((hWnd, lParam) =>
         {
             if (hWnd == lShellWindow || !SEBWindowHandler.IsWindowVisible(hWnd))
             {
                 return(true);
             }
             int windowTextLength = SEBWindowHandler.GetWindowTextLength(hWnd);
             if (windowTextLength == 0)
             {
                 return(true);
             }
             StringBuilder text = new StringBuilder(windowTextLength);
             SEBWindowHandler.GetWindowText(hWnd, text, windowTextLength + 1);
             lWindows[hWnd] = text.ToString().ToLower();
             return(true);
         }), 0);
         return((IDictionary <IntPtr, string>)lWindows);
     }
     catch (Exception ex)
     {
         Logger.AddError("Unable to retrieve open windows", (object)null, ex, (string)null);
         return((IDictionary <IntPtr, string>) new Dictionary <IntPtr, string>());
     }
 }
 public static string GetWindowTitle(this IntPtr windowHandle)
 {
     try
     {
         StringBuilder text = new StringBuilder(256);
         string        str  = "";
         if (SEBWindowHandler.GetWindowText(windowHandle, text, 256) > 0)
         {
             str = text.ToString();
         }
         return(str);
     }
     catch (Exception ex)
     {
         Logger.AddError("Unable to GetWindowTitle", (object)null, ex, (string)null);
         return("");
     }
 }