在pb中經常要調用外部程序并等待此程序運行結束后顯示相關信息。如我們要備份adaptive server anywhere 6.0數據庫,在備份結束后顯示"備份完成!"的提示信息,如果在調用備份程序dbbackup后馬上用messagebox顯示提示信息,那么程序運行時則會出現這種情況: dbbackup備份程序還在運行,"備份完成!"的提示就已經顯示了,顯然不符合我們的設想。對于這種情況,我們可以借助api函數findwindowa()、iswindow()和pb本身函數yield()來解決。
聲明api函數:
function long findwindowa (string lpclassname , string lpwindowname ) library "user32.dll"
function boolean iswindow (long hwnd ) library "user32.dll"
調用:
ulong ll_handle
int li_loop
setpointer(hourglass!) //設置鼠標指針
//運行備份數據庫程序dbbackup,并使其最小化
run("dbbackup -c ~"uid=dba;pwd=sql; dbf=d: ybase/adaptive server anywhere 6.0/asademo.db~" d:/backup", minimized!)