名前 題名 ▼ Syakeさん > マスター、皆様こんちは > ちょっとお知恵をお借りしたいと思います。 > > とあるプログラム(A)は他のプログラムを起動した際に非表示になります。 > が、再度プログラム(A)を起動しようとすると、先程のプログラム(A)が > 再表示され前面に現れます。 > 何故、消す必要があるの?ってのは無しにして下さい。 > > 消す時の処理 > //フォームの非表示とタスクバーからアイコンを消す。 > ShowWindow(Self.Handle,SW_HIDE); > ShowWindow(Application.Handle,SW_HIDE); > > プログラム(A)の起動時処理 > (略) > HWHD := FindWindow(nil,PChar(MutexName)); > if HWHD <> 0 then //おなじみの既に起動済み場合 > begin > //アプリケーションのハンドルを取得(前回起動済みのプログラム(A)) > HAPP := FindWindow(PChar(ClassName), PChar(WindowName)); > //アプリケーションがアイコン化されていたら元のサイズに戻す > if (IsIconic(HAPP)) then > begin > OpenIcon(HAPP); > end; > //前面に移動させる > SetForegroundWindow(HAPP); > if IsWindowVisible(HAPP) = False then //表示されているウィンドウを対象。 > begin > AppHwnd := GetWindowLong(HAPP, GWL_HWNDPARENT);// > ShowWindow(AppHwnd,SW_SHOW); //ウィンドウを表示する > ShowWindow(HAPP,SW_SHOWDEFAULT);//タスクバーにアイコンを表示する > end; > AppRunFlg := True; //Trueだとこのプログラムは起動されない。 > end; > (略) > > ほんで、課題は再表示された時のイベントを捕まえるのはどうするんじゃろ? > って事です。 > よろしくお願いします。<m(__)m> > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link