PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
22575 06/03/28 17:57:01 RE(5):PB9.0: PBから別Exeの制御 By nek
22566 06/03/27 19:02:19 RE(4):PB9.0: PBから別Exeの制御 By ace
22565 06/03/27 18:30:52 RE(3):PB9.0: PBから別Exeの制御 By ace
22564 06/03/27 14:08:25 RE(2):PB9.0: PBから別Exeの制御 By nek
22561 06/03/22 17:13:25 RE(1):PB9.0: PBから別Exeの制御 By ace
22550 06/03/20 18:12:06 PB9.0: PBから別Exeの制御 By nek

カテゴリ:スクリプトの記述
日付:2006年03月28日 17:57 発信者:nek
題名:RE(5):PB9.0: PBから別Exeの制御

aceさん、こんにちは。

上手くいきました!!
ホントにありがとうございます。
もっともっと精進したいと思います。m(_ _)m

>サンプルソースです
>Boolean bRet
>String WkNULL
>unsignedlong GW_HWNDFIRST   =     0
>unsignedlong GW_HWNDLAST    =     1
>unsignedlong GW_HWNDNEXT    =     2
>unsignedlong GW_HWNDPREV    =     3
>unsignedlong GW_OWNER       =     4
>unsignedlong GW_CHILD       =     5
>unsignedlong hWND
>unsignedinteger  WM_CLOSE  =  16
>integer SW_SHOWNORMAL       = 1
>Long STARTF_USESHOWWINDOW    = 1
>Long lpdwProcessId

>STARTUPINFO lpStartupInfo
>PROCESS_INFORMATION lpProcessInformation

>lpStartupInfo.dwFlags      = STARTF_USESHOWWINDOW;
>lpStartupInfo.wShowWindow  = SW_SHOWNORMAL;

>SetNULL(WkNULL)
>//ノートパッドを起動します。
>bRet = CreateProcess(WkNULL, \"NOTEPAD\", WkNULL, WkNULL, FALSE, 0, WkNULL, WkNULL, lpStartupInfo, 
>lpProcessInformation);

>MessageBox(\"起動\",\"ノートパッドを起動しました~起動の確認をしてOKしてください\")

>//全てのトップレベルのウィンドウを検索し、プロセスIDが一致したアプリケーションを終了させます
>SetNull(hWnd)
>hWnd = GetTopWindow(hWnd)
>DO WHILE hWnd <> 0
> GetWindowThreadProcessId(hWnd,lpdwProcessId)
> IF lpdwProcessId = lpProcessInformation.dwProcessId THEN
> PostMessage(hWnd, WM_CLOSE, 0, 0)
> END IF
> hWnd = GetWindow(hWnd,GW_HWNDNEXT)
>LOOP

>余談ですが
>強制終了させたい場合は
>TerminateProcess(lpProcessInformation.dwProcessId, 0);
>としてみてもいいと思います。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows XP
DBMS Oracle Net 9
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.