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月27日 19:02 発信者:ace
題名:RE(4):PB9.0: PBから別Exeの制御
サンプルソースです
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.