🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.visualbasic
Article #675

Re: VB で他アプリケーションの起動と終了をしたい

#675
From: Sato Masahiro
Date: Wed, 18 Feb 1998 00:00
49 lines
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-mail
References: <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