• 締切済み

別アプリを終了させる

itohhの回答

  • itohh
  • ベストアンサー率45% (210/459)
回答No.1

こんにちは。itohhといいます。 1回目、2回目とはどういうことでしょうか? PostMessageを投げる回数のことでしょうか? A.EXEではWM_CLOSEメッセージはちゃんと受け取っていますか? デバッカーで確認してみてください。

関連するQ&A

  • 別アプリの終了について

    いつもお世話になります。 開発環境はVC++6.0MFCです。 以前にも質問させていただいたのですが、 A.EXEとB.EXEがあったとします。 A.EXEをB.EXEから終了させたい。 しかし、A.EXEのタイトル(キャプション)は動的に 変更があり、タイトルNULLの時もある。 私はFindWindowでウィンドウハンドルを取得し、WM_CLOSE を投げているのですが、この方法だと上記理由により、 不正動作になります。 どなたかこういう場合の解決方法をご存知の方、 ご教授よろしくお願い致します。

  • 別アプリ終了させる

    いつもお世話になります。 再度質問ですが、 A.EXEとB.EXEがあり、B.EXEはA.EXEからShellExecuteで起動させています。 起動したB.EXEからA.EXEを終了させたいのですが、それにはA.EXEの ウィンドウハンドルが必要になると思います。 このときにA.EXEのタイトルは動的に変更されるので、FindWindowは使えません。 そこでA.EXEからB.EXEを起動した時にhWNDを送ってやれば、B.EXEからA.EXEを 操作できるとおもいます。 hWNDを対象アプリに送りたいのですが、ShellExecuteやCreateProcessのパラメータにhWndを持たすことはできるのでしょうか? もたせることができそうですが、具体的にどう記述すればいいのかが わからないので、サンプルソースをつけていただければありがたいです。 見当違いであれば、別の方法をご教授ください。 よろしくお願いします。

  • ウィンドウを終了させたい・・・

    いつもお世話になっています。 画面遷移時にあるメッセージウィンドウ(別exe)をVBから起動させ、遷移が終わった後にそのexeを終了させるプログラムを作っています。 プログラムの中身としては、 (1) Shell関数でexe(メッセージウィンドウ)を起動 (2) FindWindowで、起動しているexeのハンドルを取得 (3) 取得したハンドルに、SendMessageでexeを閉じるようにする(WM_CLOSEを使用)。 ・・・といったものです。 (1)と(2)はうまくいくのですが、最後のSendMessageがうまくいきません(>_<) 試しに(1)と(2)の後に、Do文の中で [1]SendMessageで起動したexeを終了させるようにする [2]FindWindowをして、ハンドルが0だったら、Exit Doする ・・・ようにプログラムしてみたところ、永久ループになってしまいました・・・。 他にも、SendMessageの代わりにShowWindowを使ってみましたが同じくダメでした・・・(T-T) ネットで調べていますが、他の方法が浮かびません。 どなたか、良い方法をご存じでしょうか?? よろしくお願いします!!

  • 別アプリを終了する方法

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

  • エクスプローラの終了と再起動をするには?

    プログラムから『エクスプローラ』を一度終了して、再び起動させる方法を探しています。 私の考えでいくと WM_CLOSE というメッセージを送れば『エクスプローラ』を一度終了させられると 思っていますが、そのためにはウインドウ・ハンドルが必要ですよね。 問題はどうやって『ウインドウ・ハンドル』を取得するかということです。 ここの部分がよく分からないため質問します。 『エクスプローラ』を終了すべく大本の『エクスプローラ』のウインドウ・ハンドルを どうやって取得すればよいのか、ご存知の方がいましたら私に教えてくれませんか? また、WM_CLOSE メッセージ以外でもっとよい方法や、別の方法があれば複数の方法を より多く知りたいと思っていますので、たくさんのアイデア(終了と再起動)などを 教えて下さい。また、再起動は単に『エクスプローラ』を起動すればよいのですよね? よろしくお願いします。

  • 他アプリのコントロール操作

    2つのアプリA.exeとB.exeがあります。A.exeの特定のテキストボックスに入力された内容をB.exeで監視しようとしているのですが次の2点問題があります。 説明がうまくできないのですが回答をいただければと思います。よろしくお願いします。 1.FindWindowを使ってウィンドウハンドルを取得しようとしているが,同じウィンドウ名を持つA.exe以外のウィンドウが存在するとA.exeのウィンドウかどうか判断できない? 2.ウィンドウハンドルが取得できたとして,複数のテキストボックスがある場合,それぞれのテキストボックスを区別する方法は?

  • デバックモードが終了しません

    VC6(SP5)からADO(Oralce)へアクセスしているのですが、 処理は正常に行えるのですが、終了処理(ウインドウを閉じる又はAfxGetMainWnd()->PostMessage( WM_CLOSE );を行う)をすると、VSがデバックモードのままで終了しません。 これは、ソースが悪いのでしょうか? それとも、何か設定が間違っているのでしょうか? ちなみに、exeを実行し終了すると、問題なく終了します。エラー等は発生しません。 よろしくお願いします。

  • visualstudioについて

    visualstudio2008 c++でアプリケーションを作っているのですが, 画像のようなアプリケーションを起動させ, HWND hWnd = ::FindWindow(NULL,"D:\アプリケーション.exe"); ::SendMessage(hWnd,WM_SETFOCUS,0,0); としたのですが,ウィンドウハンドルを取得できていないみたいで,SendMessageが働いていません. また,HWND hWnd = ::FindWindow(NULL,"D:\アプリケーション.exe");の行のところで warning C4129: '' :とエラーがでているのですがどうしてでしょうか? 一応"D:\\アプリケーション.exe"と変えれば警告は消えます. よろしくお願いします.

  • textboxに文字列を挿入したい。

    すみません。 質問があります。 VB6.0 windows2000 AファイルのFormの中にtextBoxを作成します。 BファイルにsendMessageAPIを使ってAファイルのTextBoxに文字列を送りたいのですが、うまくいきません。 sendMessage(hWnd,WM_SETTEXT,0,"テスト") FindWindowを使って、hWndのハンドルを取得したいのですが、うまくいきません。 他にハンドルの取り方ってあるのでしょうか? また、sendMessageのだい4引数は文字列を挿入しても文字化けを起こします。どうしてかよくわかりません。 どうしてもうまくいかないのですみませんが、ご存知の方いたら教えてください。

  • プログラム終了後に自動で別のプログラムを起動する方法

    お世話になります。 あるアプリケーションセットアッププログラム(A.exe)と、その修正パッチ(B.exe)を同じCD-Rに焼いて、発行したいと考えています。 そこで、autorun.infを使用して、CD-R挿入時に自動的にA.exeファイルを実行するようにしたのですが、A.exeの終了後、さらに自動でB.exeを実行するように出来ませんか? autorun.inf のように簡単に出来るコードがあれば、と考えているのですが。 どうぞよろしくお願い致します。