線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1249
推到 Plurk!
推到 Facebook!

如何將主控權從呼叫的外部程式移交到主程式

尚未結案
soni
一般會員


發表:17
回覆:29
積分:9
註冊:2003-02-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-19 18:16:55 IP:61.219.xxx.xxx 未訂閱
各位先進 小弟寫ㄌ一ㄍ小程式其中需要呼叫一ㄍ外部程式 那小弟如何判斷說我所呼叫的外部程式已經執行 完畢進而將主控權交環給小弟所寫的小程式ㄋ 備註:外部程式為.exe檔(也有可能是一ㄍ安裝程式) 請各位先進不吝指教 小弟萬分感激 開發環境 winxp professional version 2002 delphi4 update 4.2 soni
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-19 18:44:19 IP:61.221.xxx.xxx 未訂閱
呼叫外部程式使用偵測api再傳給自己 如何使用 可以參考 http://delphi.ktop.com.tw/topic.php?topic_id=25510 http://delphi.ktop.com.tw/topic.php?topic_id=19386 http://delphi.ktop.com.tw/topic.php?topic_id=23084 不然也可問問hagar 版主 這個部份他粉熟啦 ********************************************************* 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind to make knowledge together! 希望能大家敞開心胸,將知識寶庫結合一起
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-19 19:13:53 IP:202.39.xxx.xxx 未訂閱
就是這一篇: http://delphi.ktop.com.tw/topic.php?topic_id=19386 WaitForSingleObject 的用法 j 老大, 不要太抬舉我啦! :)
soni
一般會員


發表:17
回覆:29
積分:9
註冊:2003-02-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-20 09:20:46 IP:61.219.xxx.xxx 未訂閱
引言: 就是這一篇: http://delphi.ktop.com.tw/topic.php?topic_id=19386 WaitForSingleObject 的用法 j 老大, 不要太抬舉我啦! :)
procedure ShellApplication(AppName, Caption : String; Param : array of String); var execinfo : TShellExecuteInfo; ApplicationName, ParamString : String; i : integer; begin for i := Low(PARAM) to High(Param) do ParamString := ' ' ParamString ' ' Param[i]; FillChar(execinfo,SizeOf(execinfo),0); execinfo.cbSize:=sizeof(execinfo); execinfo.lpVerb:='Open'; execinfo.lpFile:=Pchar(AppName); //所要執行的外部 execinfo.lpParameters:=Pchar(ParamString); //參數 execinfo.fMask:=SEE_MASK_NOCLOSEPROCESS; execinfo.nShow:=SW_HIDE; if (not ShellExecuteEx(@execinfo)) then ShowMessage('無法執行' AppName); Application.Minimize; WaitForSingleObject(execinfo.hProcess,INFINITE); //會一直等待直到執 // 行的外部程式結束,才會把控制權交給你的應用程式。 Application.Restore; end; 謝謝各位先進的幫忙 在這小弟還有幾ㄍ問題 就是APPNAME是指我所呼叫ㄉ外部程式檔案路徑 那CAPTION以及PARAM代表ㄉ又是什麼ㄋ當我呼叫 這ㄍPROCEDURE時我又該怎樣給予參數ㄋ 小弟剛接觸DELPHI不久請各位先進幫幫小弟 小弟無限感激 soni
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-02-20 09:28:05 IP:202.39.xxx.xxx 未訂閱
您的 ShellApplication 這個 procedure 的 Caption 參數並未用到, 所以不知何意! 另外, Param 應該是參數吧 就執行 AppName 的參數。
soni
一般會員


發表:17
回覆:29
積分:9
註冊:2003-02-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-02-20 09:49:03 IP:61.219.xxx.xxx 未訂閱
引言: 您的 ShellApplication 這個 procedure 的 Caption 參數並未用到, 所以不知何意! 另外, Param 應該是參數吧 就執行 AppName 的參數。
那麼執行appname的參數又有哪幾種ㄋ 為什麼小弟在delphi4中都查不到相關的help檔ㄋ 相關ㄉhelp又應該在哪邊查找ㄋ 謝謝h大大 soni
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-02-20 10:04:33 IP:202.39.xxx.xxx 未訂閱
執行 AppName 的參數沒有分種類 應該是分個數 舉個例子, 像在 MS-Dos 模式底下 輸入 dir /w 當中的 /w 就是 dir 的參數 所以每個 AppName 的參數是它自己定義的 另外, 您可以參考 ParamStr 與 ParamCount 的 Help.
soni
一般會員


發表:17
回覆:29
積分:9
註冊:2003-02-06

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-02-20 13:55:37 IP:61.219.xxx.xxx 未訂閱
引言: 執行 AppName 的參數沒有分種類 應該是分個數 舉個例子, 像在 MS-Dos 模式底下 輸入 dir /w 當中的 /w 就是 dir 的參數 所以每個 AppName 的參數是它自己定義的 另外, 您可以參考 ParamStr 與 ParamCount 的 Help.
TO H 大大 小弟另改用CreateProcess的方法下ㄑ呼叫外部程式 可是當我呼叫我所要用ㄉ外部程式時會變成沒沒有反應 正當我以為程式已經死當ㄌ我把程式關閉可是就再這時 我所呼叫的外部程式卻跳出執行 我重複是ㄌ好幾次 都是如此ㄉ狀況 一定要我把主程式關掉 外部程式才會開始執行 不知道是何原因 請大大幫小弟解解迷惑 小弟用ㄉ方法如下: procedure TCheckLicense.CallNewProcess(NewAppName: String); var StartInfo : TStartupInfo; ProcInfo : TProcessInformation; CreateOK : Boolean; begin FillChar(StartInfo,SizeOf(TStartupInfo),#0); FillChar(ProcInfo,SizeOf(TProcessInformation),#0); StartInfo.cb := SizeOf(TStartupInfo); CreateOK := CreateProcess(nil,PChar(NewAppName), nil, nil,False, CREATE_NEW_PROCESS_GROUP NORMAL_PRIORITY_CLASS, nil, nil, StartInfo, ProcInfo); if CreateOK then WaitForSingleObject(ProcInfo.hProcess, INFINITE); end; soni
系統時間:2024-04-28 1:21:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!