在PB中如何等待外部程序运行结束(如:一个DOS批处理文件)?

tangren 2000-04-04 01:34:00
...全文
383 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ff 2000-04-12
  • 打赏
  • 举报
回复
我没有很复杂地去做.只是在运行外部程序后紧接一个messagebox 函数.
929 2000-04-05
  • 打赏
  • 举报
回复
谢谢你,昨晚写个程序试了一下。也贴出供你参考。
API 声明:
Function Boolean CreateProcess(ref string lpApplicationName, ref string lpCommandLine,ulong lpProcessAttributes,ulong lpThreadAttributes,boolean bInheritHandles,ulong dwCreationFlags,ref any lpEnvironment,ref string lpCurrentDirectory,ref STARTUPINFO lpStartupInfo,ref PROCESS_INFORMATION lpProcessInformation) LibRary "kernel32.dll" Alias For "CreateProcessA"

Function ulong WaitForSingleObject(ulong hHandle,ulong dwMilliseconds) Library "kernel32.dll" Alias For "WaitForSingleObject"

Function Boolean CloseHandle(ulong hObject) library "kernel32.dll" Alias For "CloseHandle"

//窗口中API按钮CLICK处理,调用API

Constant ulong NORMAL_PRIORITY_CLASS =32
Constant long INFINITE = -1
//security_attributes hs,ts
startupinfo startin
process_information proc
boolean bcr,bcl
ulong ulwa
any anev
string strapp,strcmd
setnull(strapp)
setnull(anev)
//setnull(hs)
//setnull(ts)
strcmd="NOTEPAD"
startin.cb=68
bcr=CreateProcess (strapp,strcmd,0,0,true,NORMAL_PRIORITY_CLASS,anev,strapp,startin,proc)
ulwa=WaitForSingleObject (proc.hprocess,INFINITE)
bcl=CloseHandle(proc.hprocess)
messagebox("API CALL","CREATPROCESS FINISHED")
929 2000-04-04
  • 打赏
  • 举报
回复
BOOL CreateProcess(

LPCTSTR lpApplicationName, // pointer to name of executable module
LPTSTR lpCommandLine, // pointer to command line string
LPSECURITY_ATTRIBUTES lpProcessAttributes, // pointer to process security attributes
LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to thread security attributes
BOOL bInheritHandles, // handle inheritance flag
DWORD dwCreationFlags, // creation flags
LPVOID lpEnvironment, // pointer to new environment block
LPCTSTR lpCurrentDirectory, // pointer to current directory name
LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO
LPPROCESS_INFORMATION lpProcessInformation // pointer to PROCESS_INFORMATION
);

DWORD WaitForSingleObject(

HANDLE hHandle, // handle of object to wait for
DWORD dwMilliseconds // time-out interval in milliseconds
);
在一些文章中有问过VB实现这个问题,在PB中应该也可以。一会写个程序试试。

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧