예제 #1
0
        /// <summary>
        /// ウィンドウ取得処理を行う。
        /// </summary>
        /// <param name="windowProc">ウィンドウ操作を行うオブジェクト</param>
        private void FindWindow(IWindowProc windowProc)
        {
            // クラス名とウィンドウ名を取得する。
            this.FindWindowResultClassName = windowProc.GetClassName();
            this.FindWindowResultTextName = windowProc.GetWindowText();

            // ウィンドウ操作を行うオブジェクトをプライベートフィールドに保持する。
            this.WindowProc = windowProc;
        }
예제 #2
0
        /// <summary>
        /// プロパティ情報をもとにハンドルを取得する。
        /// </summary>
        public void FindWindow()
        {
            // 現在の取得しているウィンドウ操作オブジェクトを無効にする。
            this.WindowProc = null;

            // ウィンドウ操作オブジェクトの取得処理を行う。
            IWindowProc windowProc;

            if (this.Specifying == FindWindowSpecifying.Position)
            {
                System.Drawing.Point p = new System.Drawing.Point(this.FindWindowPointX, this.FindWindowPointY);
                windowProc = this.WindowProcFactory.FindWindow(p);
            }
            else if (this.Specifying == FindWindowSpecifying.WindowClass)
            {
                string className = null;
                string windowName = null;

                if (!string.IsNullOrEmpty(this.FindWindowClassName))
                {
                    className = this.FindWindowClassName;
                }
                if (!string.IsNullOrEmpty(this.FindWindowTextName))
                {
                    windowName = this.FindWindowTextName;
                }

                windowProc = this.WindowProcFactory.FindWindow(className, windowName);
            }
            else
            {
                throw new InvalidOperationException();
            }

            FindWindow(windowProc);
        }
예제 #3
0
        /// <summary>
        /// ウィンドウハンドルをもとにハンドルを取得する。
        /// </summary>
        public void FindWindowFromHwnd(IntPtr hwnd)
        {
            // 現在の取得しているウィンドウ操作オブジェクトを無効にする。
            this.WindowProc = null;

            // ウィンドウハンドルを取得する。
            FindWindow(this.WindowProcFactory.GetControlWindow(hwnd));
        }
예제 #4
0
        /// <summary>
        /// タスクバーのハンドルを取得する。
        /// </summary>
        public void FindTaskBarHandle()
        {
            // 現在の取得しているウィンドウ操作オブジェクトを無効にする。
            this.WindowProc = null;

            // タスクバーのウィンドウハンドルを取得する。
            FindWindow(this.WindowProcFactory.GetTaskBarWindow());
        }