-PR-
解決
済み

別アプリを終了する方法

  • 暇なときにでも
  • 質問No.89061
  • 閲覧数959
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 10% (4/39)

A.EXE と B.EXEがあったとします。
A.EXEからShellExecuteアプリケーションB.EXEを立ち上げたとします。
その時にA.EXEを終了せずにB.EXEの処理が終わり次第、B.EXEからA.EXEを、
終了させたいのですが、可能でしょうか?
いろいろと調べてみたのですが、見当がつきません。
どなかたご教授願えませんでしょうか?

ちなみにVC++6.0MFCです。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル12

ベストアンサー率 45% (210/459)

こんにちは。itohhといいます。

A.EXEがウィンドウを持っているものとして回答します。

NNJA104さんの回答でほぼ良いと思うのですが、送るメッセージは、WM_CLOSEのほうが良いと思います。
一般的にOnClose(WM_CLOSEが受信されたとき)イベントで終了処理を行うのがベストだと思うからです。

1についての例を記載すます。
(B.EXE内の作り)
HWND hWnd;
hWnd = ::FindWindow( NULL, "A.EXEのウィンドウ名");
::PostMessage(hWnd, WM_COLSE, 0, 0);

(A.EXE内の作り)
CWnd::OnCloseに飛ぶのでメモリの解放などの終了処理を行う。

A.EXEのウィンドウ名とは、タスクマネージャーに表示される名称です。
お礼コメント
yomogikun

お礼率 10% (4/39)

わかりやすい説明ありがとうございました。
参考にさせて頂きます。
投稿日時 - 2001-06-13 13:07:49
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル11

ベストアンサー率 43% (133/306)

んーと、A.EXEから監視をしているのならば話しは簡単なのですが、B.EXEから指示したいのですよね? 経験は有りませんが... 1.API32のFindWindowでA.EXEを探し、見付けたインスタンスハンドル(HINST)からウィンドウハンドル(HWND)を更に探り、そのHWNDに破棄(WM_DESTROY)を投げる。 2.B.EXE起動時にA.EXEからウィンドウハンドルを引き渡す。 ...続きを読む
んーと、A.EXEから監視をしているのならば話しは簡単なのですが、B.EXEから指示したいのですよね?
経験は有りませんが...

1.API32のFindWindowでA.EXEを探し、見付けたインスタンスハンドル(HINST)からウィンドウハンドル(HWND)を更に探り、そのHWNDに破棄(WM_DESTROY)を投げる。

2.B.EXE起動時にA.EXEからウィンドウハンドルを引き渡す。そのHWNDに破棄(WM_DESTROY)を投げる。

3.DDE通信を行って相互通信する。

のいずれかで可能かな。ちょっと自信無しです。
お礼コメント
yomogikun

お礼率 10% (4/39)

早速ご教授していただいた内容を試してみたいと思います。
ありがとうございました。
投稿日時 - 2001-06-13 13:02:36


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ