by たかせ » 2016年11月17日(木) 22:41
表示中のウインドウのハンドルがわかれば以下の方法でできます。
例(これは何らかの方法でウインドウのハンドルの値が判明したとき)
DIM HWNHND AS HANDLE
HWNHND = &h0016075a AS HANDLE 'ウインドウのハンドルを設定
SendMessage(HWNHND,WM_CLOSE,0,0) 'ウインドウの閉じるボタンを押されたことを通知
ウインドウのハンドルはウインドウクラスまたはウインドウタイトルを基にWIN32 API FindWindowで取得します。
なおウインドウクラスがわからなくてもウインドウタイトルのみでも取得できます。というか私はそうしてます。
FindWindowについてはABのヘルプに載ってますので詳細はこちらをご確認下さい。
私自身あまりよく理解できていませんが、
WM_CLOSEメッセージはウインドウの閉じるボタンを押されたことを通知するもので強制的に終了するものではありません。
しかしながらプログラムの作りに依存しますが、WM_CLOSEメッセージを対象のウインドウに送ると基本的にウインドウ系のプログラムは終了します。
2017.10.31修正
表示中のウインドウのハンドルがわかれば以下の方法でできます。
例(これは何らかの方法でウインドウのハンドルの値が判明したとき)
DIM HWNHND AS HANDLE
HWNHND = &h0016075a AS HANDLE 'ウインドウのハンドルを設定
SendMessage(HWNHND,WM_CLOSE,0,0) 'ウインドウの閉じるボタンを押されたことを通知
ウインドウのハンドルはウインドウクラスまたはウインドウタイトルを基にWIN32 API FindWindowで取得します。
なおウインドウクラスがわからなくてもウインドウタイトルのみでも取得できます。というか私はそうしてます。
FindWindowについてはABのヘルプに載ってますので詳細はこちらをご確認下さい。
私自身あまりよく理解できていませんが、
WM_CLOSEメッセージはウインドウの閉じるボタンを押されたことを通知するもので強制的に終了するものではありません。
しかしながらプログラムの作りに依存しますが、WM_CLOSEメッセージを対象のウインドウに送ると基本的にウインドウ系のプログラムは終了します。
[b]2017.10.31修正[/b]