A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
起動したアプリがウィンドウを持つアプリであれば、
WindowsAPIのPostMessage()でWM_CLOSEをポストして終了させるのが安全です。
で、メッセージをポストするには送信先のウィンドウのウィンドウハンドル(hWnd)を取得する必要があります。
手軽にhWndを取得するにはWindowsAPIのFindWindow()を使うのが楽です。
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Const WM_CLOSE = &H10
Sub ShutdownOtherApp
'ウィンドウハンドルの取得
Dim hWnd As Long
hWnd = FindWindow(vbNullString, "終了させるウィンドウのキャプション")
'メッセージをポスト
Call PostMessage(hWnd, WM_CLOSE, 0, 0)
End Sub
ただし、同じキャプションのウィンドウが複数立ち上がっている状態では、FindWindow()では
ウィンドウを一意に特定できないので、Shellで起動したときの戻り値のプロセスIDと
同じプロセスであるかをチェックしながらウィンドウを調べていく必要があります。
列挙の方法はこちらをどうぞ。
http://www.vbvbvb.com/jp/gtips/0751/gEnumWindows …
Declare Function GetWindowThreadProcessId Lib "user32" Alias "GetWindowThreadProcessId" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Dim PId As Long
PId = Shell("アプリ名", vbNormalFocus)
・
・
・
'列挙されたウィンドウハンドルに対しての処理です。
Dim wndPId as Long
'ウィンドウハンドルからプロセスIDを取得
Call GetWindowThreadProcessId(hWnd. wndPId)
'同一であれば起動したプロセスだということ
If PId = wndPId Then
'WM_CLOSEをポスト
Call PostMessage(hWnd, WM_CLOSE, 0, 0)
End If
参考URL:http://www.vbvbvb.com/jp/gtips/0751/gEnumWindows …
No.1
- 回答日時:
こんにちは。
maruru01です。前回の質問で他アプリケーションの終了の仕方はOKなのでしょうか。
(回答に対するお礼は補足がまったくないようですが。)
いちおう参考URL載せますが。
http://www.users.gr.jp/ml/archive/vb/1708.asp
(ただし、NT4.0はうまくいかないらしい。)
で、あとはこれをメイン画面(フォーム)のUnLoadイベントにでも記述すればいいんじゃないでしょうか。
参考URL:http://www.users.gr.jp/ml/archive/vb/1708.asp
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
vbaから他のアプリを終了
Visual Basic(VBA)
-
VB6.0 SHELLで起動したプログラムを終了さしたいのですが
Visual Basic(VBA)
-
外部プロセスを終了したい!!
Visual Basic(VBA)
-
-
4
ExcelVBAにてアプリをタスクマネージャーから強制終了させたいのですが
Visual Basic(VBA)
-
5
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
6
VBAでOutlookを終了させたい ExcelVBAで既に起動されているOutlookを終了させる
Visual Basic(VBA)
-
7
VBA PDFファイル印刷後のAcrobatReaderDCの起動画面を閉じたい
Excel(エクセル)
-
8
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
9
ExcelVBAでPDFを閉じるソース
その他(Microsoft Office)
-
10
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
11
VBAで外部プログラムを非表示で実行するには
Visual Basic(VBA)
-
12
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
13
指定のWORKBOOKを前面表示する方法(エクセル:VBA)
Excel(エクセル)
-
14
フォームウィンドウを最前面に表示したい(ACCESS)
Microsoft ASP
-
15
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
16
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
17
Excel(VBA)
Excel(エクセル)
-
18
コマンドボタンがあるかどうかを取得するには?
PowerPoint(パワーポイント)
-
19
UserForm
Visual Basic(VBA)
-
20
excel vbaから実行するexe実行の黒い画面の非表示
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
検索の画面がでなくなってしま...
-
ラジオボタンの初期指定
-
ゲームでは結局どっちが良いの?
-
親ウインドウにあるOKボタンを...
-
「&HFFFF」「&H1A」とは?
-
VBA .Value=.Value ?
-
Vba LongPtrについて教えてくだ...
-
作成したウインドウのサイズを...
-
ExcelのBOOKが消えた!
-
ウィンドウハンドルって途中で...
-
エクセルで1行目から3行目が消...
-
EnumChildWindowsの使い方(VBA)
-
C++のクラス内で、ウインドウプ...
-
特定プロセスの権限情報を取得...
-
Visual Studioの画面で
-
デスクトップにフォーカスを移動
-
MFC ダイアログ上のID取得につ...
-
[VBA] UserForm を Excel の W...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
ExcelのBOOKが消えた!
-
検索の画面がでなくなってしま...
-
ゲームでは結局どっちが良いの?
-
ラジオボタンの初期指定
-
勝手にウィンドウが開いて止ま...
-
VBA .Value=.Value ?
-
Vba LongPtrについて教えてくだ...
-
Excelの上下を固定したい
-
Alt+P,Alt+NをPostmessageで送...
-
作成したウインドウのサイズを...
-
[VBA] UserForm を Excel の W...
-
「&HFFFF」「&H1A」とは?
-
MFC ダイアログ上のID取得につ...
-
親ウインドウにあるOKボタンを...
-
ダイアログをスクロールさせるには
-
【VB2008】 マウス操作の一時的...
-
EnumChildWindowsの使い方(VBA)
-
名前を付けて保存のウィンドウ...
おすすめ情報