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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.