お世話になります。
C++6.0 MFCで開発しております。
今、
(1)A.exeのボタンを押すとB.exeを起動(A.exeの上にB.exeが表示)
(2)B.exeが終了するとA.exeに終了通知をして、A.exeに処理を戻す。
(A.exeを最前面に表示する)
(3)再度A.exeのボタンを押す。
→(1)のときは、A.exeの上にB.exeが表示されていたのに、A.exeの下にB.exeが表示される
(2)のA.exeに処理を戻した後、A.exeが最前面に出るように
SetWindowPos(hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE)
を実行しています。
(1)、(3)のA.exeのボタンを押すと、A.exeの上にB.exeが表示され、
(2)の時に、A.exeが他のアプリケーションを含めて、最前面、モニターの最前面に表示されるようにしたいのです。
お手数ですがなにとぞよろしくお願いします。
以上よろしくお願いします。
No.1
- 回答日時:
最前面に表示すると言うAPIがあるのでソレを使ってみたらどうでしょうか?
(ごめんなさい関数名は思い出せません)
後、処理対象はウィンドウハンドルで指定するので、
他アプリは対象アプリのウィンドウハンドルを取得する必要があります。
ご返事ありがとうございます。
>最前面に表示すると言うAPIがあるのでソレを使ってみたらどうでしょうか?
私ももしや、1行ぐらいで、このアプリの画面を前面に出せ!!見たいな命令があるのかなとおもっていたのですが、うまくいかないのです。。。。
がんばってみます!!ありがとうございます。
No.2
- 回答日時:
HWND_TOPMOSTは最前面に出すのではなく、最前面を維持する(タスクマネージャのように、他のウィンドウに隠されないようにする)ための指定です。
なので、B.exeの画面が後ろに行ってしまうのでしょう。HWND_TOPではうまくいきませんか?
うまくいかない場合、AllowSetForegroundWindowで許可を与えた上で、SetForegroundWindowを使ってみてください。
SetForegroundWindow
http://msdn.microsoft.com/ja-jp/library/cc411039 …
参考URL:http://msdn.microsoft.com/ja-jp/library/cc411039 …
ご返事ありがとうございます。
>HWND_TOPではうまくいきませんか?
うまくいかないのです。。。
>うまくいかない場合、AllowSetForegroundWindowで許可を与えた上で、SetForegroundWindowを使ってみてください。
ありがとうございます。試して見ます
No.3ベストアンサー
- 回答日時:
A.EXEからB.EXEを起動するときに
SetWindowPos( hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE );
を実行してから B.EXEを実行してみましょう
B.EXEで A.EXEをHWND_TOPMOST指定でアクティブ化されていて
これを解除することなく 2回目のB.EXEの起動を行うので質問のような現象になります
SetForgroundWindow/AttachThreadInputなどを使う方法もありますよ
ご返事ありがとうございます。
>SetForgroundWindow/AttachThreadInputなどを使う方法もありますよ
調べてがんばってみます!!!
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- その他(セキュリティ) exeファイルの個人情報について 3 2023/06/29 17:36
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- アプリ アプリケーションが見つかりません 2 2022/07/13 21:07
- Windows 10 Windows11の実行モジュールはどこにある 1 2022/05/31 07:33
- Android(アンドロイド) exeファイルを開けない 4 2023/03/11 14:33
- Windows 10 windows11のUSB接続の機器がcomポートに表示されない。 3 2023/04/13 07:51
- オープンソース Pythonのコードをexe化 1 2023/07/03 08:01
- その他(ソフトウェア) A列車でいこう9が起動できません 2 2022/06/15 16:33
- その他(IT・Webサービス) エクセルの実行ファイルについての質問です。 1 2023/05/04 03:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAにてアプリをタスクマ...
-
c#でコマンドプロンプトを実行...
-
ショートカットの作成とコピー
-
64bitのwindowsサーバーで32bit...
-
バッチファイル 特定ウインドウ...
-
プログラムを実行すると、なぜ...
-
EXCELをバッチコマンドで...
-
eclipseのエラーに関する質問で...
-
stable diffusionのインストー...
-
VBで作成した実行形式の戻り値...
-
バッチファイル実行時に起動す...
-
exe間での引き値の受け取り方法
-
バッチファイルで実行ファイル...
-
C#でMediaPlayerを立ち上げた後
-
相対パスのショートカットフォ...
-
Market Speed をVBAで制御した...
-
バッチファイルにて複数のプロ...
-
バッチファイルでAPを終了さ...
-
gccがコマンドプロンプト上で使...
-
VBSでコマンドプロンプトのカレ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 特定ウインドウ...
-
stable diffusionのインストー...
-
ExcelVBAにてアプリをタスクマ...
-
EXCELをバッチコマンドで...
-
ショートカットの作成とコピー
-
VB.NETでDOSコマンドの複数実行
-
gccがコマンドプロンプト上で使...
-
バッチファイル実行時に起動す...
-
VBAからキャッシュを削除する方...
-
c#でコマンドプロンプトを実行...
-
batファイルで立ち上げたaplを...
-
64bitのwindowsサーバーで32bit...
-
Shiftキーを押しながら起動
-
Visual basic6.0からショートカ...
-
VB.NETでコマンドプロンプトの操作
-
exe間での引き値の受け取り方法
-
プログラムを実行すると、なぜ...
-
相対パスのショートカットフォ...
-
PL/SQLで作成したストア...
-
バッチへ値を返す
おすすめ情報