예제 #1
0
        /// <summary>
        /// 外部プロセスで動作している Win32 ウィンドウのハンドルを指定して、<see cref="ExternalWindow"/>
        /// クラスの新しいインスタンスを初期化します。
        /// </summary>
        /// <param name="hWnd">ウィンドウ ハンドル。</param>
        public ExternalWindow(IntPtr hWnd)
        {
            this.Handle = hWnd;

            if (_serviceInstance == null)
            {
                _serviceInstance = ServiceFactory.CreateInstance();
            }

            this._external = _serviceInstance.Register(hWnd);
            this._external.StateChanged += this.ExternalOnStateChanged;
            this._external.SizeChanged  += this.ExternalOnSizeChanged;
            this._external.WindowMoved  += this.ExternalOnWindowMoved;
            this._external.Activated    += this.ExternalOnActivated;
            this._external.Deactivated  += this.ExternalOnDeactivated;
            this._external.Closed       += this.ExternalOnClosed;

            this._rect       = this.GetExtendFrameBounds();
            this.IsActive    = User32.GetForegroundWindow() == this.Handle;
            this.WindowState = WindowState.Normal;
            if (User32.IsIconic(hWnd))
            {
                this.WindowState = WindowState.Minimized;
            }
            if (User32.IsZoomed(hWnd))
            {
                this.WindowState = WindowState.Maximized;
            }
        }
예제 #2
0
		/// <summary>
		/// 外部プロセスで動作している Win32 ウィンドウのハンドルを指定して、<see cref="ExternalWindow"/>
		/// クラスの新しいインスタンスを初期化します。
		/// </summary>
		/// <param name="hWnd">ウィンドウ ハンドル。</param>
		public ExternalWindow(IntPtr hWnd)
		{
			this.Handle = hWnd;

			if (_serviceInstance == null)
			{
				_serviceInstance = ServiceFactory.CreateInstance();
			}

			this._external = _serviceInstance.Register(hWnd);
			this._external.StateChanged += this.ExternalOnStateChanged;
			this._external.SizeChanged += this.ExternalOnSizeChanged;
			this._external.WindowMoved += this.ExternalOnWindowMoved;
			this._external.Activated += this.ExternalOnActivated;
			this._external.Deactivated += this.ExternalOnDeactivated;
			this._external.Closed += this.ExternalOnClosed;

			this._rect = this.GetExtendFrameBounds();
			this.IsActive = User32.GetForegroundWindow() == this.Handle;
			this.WindowState = WindowState.Normal;
			if (User32.IsIconic(hWnd)) this.WindowState = WindowState.Minimized;
			if (User32.IsZoomed(hWnd)) this.WindowState = WindowState.Maximized;
		}