亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

你好,請問在PB中如何判斷run()函數執行完畢呢?該怎么操作?

你好,請問在PB中如何判斷run()函數執行完畢呢?該怎么操作?

慕桂英546537 2021-12-02 11:07:18
現在我在PB 中調用了RUN()函數但是不知道如何判斷run()函數是否執行完畢!在網上查了一下說要定義外部函數:function long findwindowa (string lpclassname , string lpwindowname ) library "user32.dll"function boolean iswindow (long hwnd ) library "user32.dll" 這兩個要如何定義!請幫助!
查看完整描述

2 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

PB自己的函數做不到的不要找了,只能看返回值是1就成功,想別的方法吧

非要找的話就找找APT函數,判斷那些煩人的句柄吧

查看完整回答
反對 回復 2021-12-06
?
MM們

TA貢獻1886條經驗 獲得超2個贊

在PB中常常需要運行一些外部的程序或命令,并等待其執行完成后,才接下來運行剩余的代碼。我們可以有兩種方法:
  先定義全局外部函數:
  Function long ShellExecuteA (long hwnd, string lpOperation ,String lpFile, String lpParameters, String lpDirectory, Long nShowCmd) Library "shell32.dll"
  Function long FindWindowA (String lpClassName , String lpWindowName ) Library "user32.dll"
  Function boolean IsWindow (Long hwnd ) Library "user32.dll"
  第一種方式用Run() 函數,可在窗口上建立按扭,clicked事件中包含如下Script:
  ulong ll_handle
  int li_loop
  SetPointer(HourGlass!)
  //最小化執行xxx.bat
  run("xxx.bat", Minimized!)
  //循環到窗口打開,根據程序執行打開所需的時間設定li_loop的循環次數,可預留長一些。
  for li_loop= 1 to 10000
  ll_handle = FindWindowA("tty","xxx")
  yield()
  if ll_handle $#@60;$#@62; 0 then
  exit
  end if
  next
  //一直循環到窗口關閉
  Do While isWindow(ll_handle)
  Yield()
  Loop
  //應用執行完成
  messagebox(‘ok’, ‘執行完成!’)
  這種方法的缺點是不能隱藏外部應用程序窗口,只能最小化。
  第二種方式用API函數,可以隱藏應用程序的窗口,但是調用bat批處理命令時需要先建立一個PIF文件指定執行完成后關閉窗口,否則窗口不會自行關閉??稍诖翱谏辖磁?,clicked事件中包含如下Script:
  uint lu_return
  ulong ll_handle
  int li_loop
  string ls_Path
  SetPointer(HourGlass!)
  lu_return = ShellExecutea(handle(parent), "open", "xxx.pif", "", ls_path, 0)
  //最后一個參數改為 4,可以顯示執行情況
  if lu_return $#@62; 32 then
  for li_loop= 1 to 10000
  ll_handle = FindWindowA("tty","xxx")
  yield()
  if ll_handle $#@60;$#@62; 0 then
  exit
  end if
  next
  //一直循環到窗口關閉
  Do While isWindow(lu_handle)
  Yield()
  Loop
  //應用執行完成
  Messag x("ok", "執行完成!")
  Else
  //error
  messagebox("錯誤", "調用外部應用程序不成功,請檢查應用程序路徑!")
  end if



查看完整回答
反對 回復 2021-12-06
  • 2 回答
  • 0 關注
  • 877 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號