Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        private void GetTaskWindows()
        {
            // Get the desktopwindow handle
            int nDeshWndHandle = NativeWin32.GetDesktopWindow();
            // Get the first child window
            int           nChildHandle = NativeWin32.GetWindow(nDeshWndHandle, NativeWin32.GW_CHILD);
            List <string> list         = new List <string>();

            while (nChildHandle != 0)
            {
                //If the child window is this (SendKeys) application then ignore it.
                if (nChildHandle == this.Handle.ToInt32())
                {
                    nChildHandle = NativeWin32.GetWindow(nChildHandle, NativeWin32.GW_HWNDNEXT);
                }

                // Get only visible windows
                if (NativeWin32.IsWindowVisible(nChildHandle) != 0)
                {
                    StringBuilder sbTitle = new StringBuilder(1024);
                    // Read the Title bar text on the windows to put in combobox
                    NativeWin32.GetWindowText(nChildHandle, sbTitle, sbTitle.Capacity);
                    string sWinTitle = sbTitle.ToString();
                    {
                        if (sWinTitle.Length > 0)
                        {
                            list.Add(sWinTitle);
                        }
                    }
                }
                // Look for the next child.
                nChildHandle = NativeWin32.GetWindow(nChildHandle, NativeWin32.GW_HWNDNEXT);
            }
            cboWindows.Properties.DataSource = list;
        }
Esempio n. 2
0
 /// <summary>
 /// Sets the window handle if handle is a valid window.
 /// </summary>
 /// <param name="handle">The handle to set to.</param>
 public void SetWindowHandle(IntPtr handle)
 {
     if ((NativeWin32.IsWindow(handle) == false) || (NativeWin32.IsRelativeWindow(handle, this.Handle, true)))
     {
         // Clear window information
         windowHandle     = IntPtr.Zero;
         windowHandleText = string.Empty;
         windowClass      = string.Empty;
         windowText       = string.Empty;
         isWindowUnicode  = false;
         windowCharset    = string.Empty;
     }
     else
     {
         // Set window information
         windowHandle     = handle;
         windowHandleText = Convert.ToString(handle.ToInt32(), 16).ToUpper().PadLeft(8, '0');
         windowClass      = NativeWin32.GetClassName(handle);
         windowText       = NativeWin32.GetWindowText(handle);
         isWindowUnicode  = NativeWin32.IsWindowUnicode(handle) != 0;
         windowCharset    = ((isWindowUnicode) ? ("Unicode") : ("Ansi"));
     }
     if (WindowHandleChanged != null)
     {
         WindowHandleChanged(this, EventArgs.Empty);
     }
 }