PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
3400 98/09/25 14:18:52 RE:RE:RE:RE:RE:RE:RE:RE:RE:RE:RE:PB6: CreateProcess の使用例です。(その3) By hamada
3341 98/09/22 11:31:01 RE:RE:RE:RE:RE:RE:RE:RE:RE:RE:PB6: CreateProcess の使用例です。(その3) By めめ
3340 98/09/22 11:32:17 RE:RE:RE:RE:RE:RE:RE:RE:RE:RE:PB6: CreateProcess の使用例です。(その3) By めめ
3300 98/09/18 16:06:36 RE:RE:RE:RE:RE:RE:RE:RE:RE:PB6: CreateProcess の使用例です。(その2) By めめ
3299 98/09/18 16:05:23 RE:RE:RE:RE:RE:RE:RE:RE:PB6: CreateProcess の使用例です。(その1) By めめ
3116 98/09/04 16:55:08 RE:RE:RE:RE:RE:RE:RE:PB6: CreateProcess OR WinExec By nari
3107 98/09/04 15:41:23 RE:RE:RE:RE:RE:RE:PB6: CreateProcess OR WinExec By hamada
3092 98/09/04 10:53:08 RE:RE:RE:RE:RE:PB6: CreateProcess OR WinExec By nari
3079 98/09/04 09:10:57 RE:RE:RE:RE:PB6: CreateProcess OR WinExec By hamada
3071 98/09/03 18:22:10 RE:RE:RE:PB6: CreateProcess OR WinExec By nari
3063 98/09/03 14:22:11 RE:RE:PB6: CreateProcess OR WinExec By hamada
3057 98/09/03 11:17:08 RE:PB6: CreateProcess OR WinExec By nari
3051 98/09/02 19:35:29 PB6: CreateProcess OR WinExec By hamada

カテゴリ:旧電子会議室
日付:1998年09月03日 11:17 発信者:nari
題名:RE:PB6: CreateProcess OR WinExec

>動かすことができませんでした。WinExecはWIN32では推奨していないようなのでどうしようか迷っています。

WinExecは推奨されていませんが、楽なので使っています。^^;

>どなたか、CreateProcess はこうすればPBで使えるよ!!というのがありましたら教えてください。

SDKで指定された構造体 (CreateProcessなら STARTUPINFO, PROCESS_INFORMATION) を定義して与えてあげることで、
大抵のWin32APIは動くはずです。あといはrefに気を付けることくらいです。
しかしCreateProcessで要求する構造体は、たくさんの構成要素があり面倒くさいです。

>そのとき、呼んだアプリを表示しないようにしていますが、どうすれば処理終了がわかりますか??
>OpenProcess等APIのヘルプを見たのですが、PBでどうすればいいか思いつきませんでした。

GetProcessTimesで終了時刻が得られるようです。CreateProcess, 

※以下はWin32SDK Reference Helpより引用

BOOL GetProcessTimes(
HANDLE hProcess, // specifies the process of interest
LPFILETIME lpCreationTime, // when the process was created
LPFILETIME lpExitTime, // when the process exited
LPFILETIME lpKernelTime, // time the process has spent in kernel mode
LPFILETIME lpUserTime // time the process has spent in user mode
);


この、lpExitTime (FILETIME構造体) で終了時刻を返してくれて、終了していなければ未定義が返るそうです。
※原文 Points to a FILETIME structure that receives the exit time of the process. If the process has not exited, the content of this structure is undefined. 

※以下はWin32SDK Reference Helpより引用

typedef struct _FILETIME { // ft 
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;


う?ん、一筋縄ではいかないようで… もしできあがったら是非投稿してください。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows NT 4.0
DBMS Sybase SQL Anywhere Client
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Sybase SQL Anywhere Server
WebServer (記載なし)

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