Article View: fj.lang.visualbasic
Article #675Re: VB で他アプリケーションの起動と終了をしたい
From: Sato Masahiro
Date: Wed, 18 Feb 1998 00:00
Date: Wed, 18 Feb 1998 00:00
49 lines
2526 bytes
2526 bytes
>In article <6cb4fc$dio$1@nn-os001.ocn.ad.jp>, na201599@fsinet.or.jp says...
>>方法としては、GetWindow(だったと思う)でハンドルを取得して、
>>それに対して、終了用のAPI CloseWindow(だったと思う)をするのだと思いまし
>>た。
CloseWindow だと、アイコン化してしまいますね? :-)
>>PostQuitMessageでWM_CLOSEを送ってもよいと思います。
PostQuitMessage や、DestroyWindow などは、他のスレッドに対しては
使用できないような気がするので、SendMessage などを使用した方が
良いとおもいます。
In article <6ce4m9$8d0$1@s4leia1.kcc.co.jp>, Toshiya Suzuki wrote:
>Shell関数の復帰値(プロセスID?)からウィンドウハンドルを取得する
>方法が分らないのです。いろいろ調べてますけど…。頭が痛くなります。
あまり良い方法でないかもしれませんが、以下の方法ではどうでしょうか。
1. デスクトップウィンドウに対して GetTopWindow を行う
2. 得られたウィンドウの次のウィンドウを GetWindow で取得
3. 得られたウィンドウのプロセス ID を取得。
4. Shell 関数の戻り値と 3. で得られた ID が等しいならば、WM_CLOSE を送る。
5. 次のウィンドウがなくなるまで、2. へ戻る。
以下は適当に作ったサンプルです。
hwnd = GetTopWindow(GetDesktopWindow())
Do
hwnd = GetWindow(hwnd, GW_HWNDNEXT)
GetWindowThreadProcessId hwnd, hwndprocID
If hwndprocID = ProcessID Then
If (GetWindowLong(hwnd, GWL_STYLE) And WM_DISABLED) = 0 Then
SendMessage hwnd, WM_CLOSE, 0, 0
End If
End If
Loop While hwnd <> 0
間違いなどありましたら、ご指摘ください。
#あと、Windows API 関数に関する話なので、これ以上話題が続くようならば
#fj.os.ms-windows.programmingに移った方が良いかもしれません。
--
Computer Institute of Japan, Ltd.
佐藤正宏 masahiro@cij.co.jp
Technical Details
Message-ID:
<6cepqe$5ti@cij-gw.ykhm.cij.co.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<6caubm$25t$1@s4leia1.kcc.co.jp> <6cb4fc$dio$1@nn-os001.ocn.ad.jp> <6ce4m9$8d0$1@s4leia1.kcc.co.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 105c2e,24ea65a3248e4ec2 X-Google-Attributes: gid105c2e,public From: masahiro@cij.co.jp (Sato Masahiro) Subject: Re: VB で他アプリケーションの起動と終了をしたい Date: 1998/02/18 Message-ID: <6cepqe$5ti@cij-gw.ykhm.cij.co.jp> X-Deja-AN: 326237783 References: <6caubm$25t$1@s4leia1.kcc.co.jp> <6cb4fc$dio$1@nn-os001.ocn.ad.jp> <6ce4m9$8d0$1@s4leia1.kcc.co.jp> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Organization: Computer Institute of Japan, Ltd. Newsgroups: fj.lang.visualbasic