PB 電子会議室
カテゴリ:旧電子会議室
日付: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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.