全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2269
推到 Plurk!
推到 Facebook!

shellExecute 問題

 
mimitter
一般會員


發表:1
回覆:4
積分:1
註冊:2004-12-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-03-07 15:59:26 IP:140.126.xxx.xxx 訂閱
<textarea class="cpp" rows="10" cols="60" name="code"> int i=0; HANDLE handle; do { ShellExecute(NULL,"open","C:\\Modeltech_6.0c\\win32\\modelsim.exe", "-do resimscript1.do" ,"C:\\Modeltech_6.0c\\examples\\wb_synthesis_2", SW_HIDE ); n=WaitForSingleObject(handle,INFINITE); i ; }while(i<2); </textarea><br />
我想要利用BCB依序開啟外部執行檔兩次,但是這樣的寫法是一次開兩個外部執行檔
如何可以完成自動依序開兩~N個外部執行檔!(不使用ShowMessage!!)
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-03-07 16:33:15 IP:61.219.xxx.xxx 訂閱
您是要第1個開啟的檔案關閉了, 程式自動開啟第2個;
第2個開啟的檔案關閉了, 程式自動開啟第3個嗎 ? 在程式中間檢查記憶體中是否某程式是否存在即可

執行第1個程式
一值檢查記憶體中是否第1個程式仍存在, 不存在則執行第2個

...

------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
mimitter
一般會員


發表:1
回覆:4
積分:1
註冊:2004-12-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-03-07 16:52:32 IP:140.126.xxx.xxx 訂閱

===================引 用 文 章===================
您是要第1個開啟的檔案關閉了, 程式自動開啟第2個;
第2個開啟的檔案關閉了, 程式自動開啟第3個嗎 ? 在程式中間檢查記憶體中是否某程式是否存在即可

執行第1個程式
一值檢查記憶體中是否第1個程式仍存在, 不存在則執行第2個

...
是的,等第一個開啟的檔案關閉了在開第二個,
那檢查記憶體 第一個程式是否關閉的程式碼應該如何寫?

pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-03-07 18:08:46 IP:203.204.xxx.xxx 訂閱
[發表] 顯示目前執行的程序(Process List) (含Source Code)
http://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=86821
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
mimitter
一般會員


發表:1
回覆:4
積分:1
註冊:2004-12-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-03-08 08:52:48 IP:140.126.xxx.xxx 訂閱
可否把它改成BCB的語法跟加上註解,因為我是新手,
看不太懂Delphi = =

pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-03-08 09:18:55 IP:210.241.xxx.xxx 訂閱
可以改, 但是小弟沒那麼熟 BCB, 而且這需要時間
建議您自己改看看, 有問題再提出來會比較快, 不然您就要慢慢等
===================引 用 文 章===================
可否把它改成BCB的語法跟加上註解,因為我是新手,
看不太懂Delphi = =

------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
mimitter
一般會員


發表:1
回覆:4
積分:1
註冊:2004-12-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-03-08 12:27:13 IP:140.126.xxx.xxx 訂閱
為什麼抓取執行中程式在記憶體位址 需要區別WINDOWS類型呢?

因為不同作業系統 位址不同?

pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-03-08 14:08:28 IP:210.69.xxx.xxx 訂閱
> 為什麼抓取執行中程式在記憶體位址 需要區別WINDOWS類型呢?
因為某些 API 只能在某些作業系統中使用, 所以只好先辨識 Windows 版本
為什麼某些 API 只能在某些作業系統中使用 => 問 微軟 吧, 微軟提供的 API 就是這樣
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
mimitter
一般會員


發表:1
回覆:4
積分:1
註冊:2004-12-04

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-03-08 15:38:23 IP:140.126.xxx.xxx 訂閱
最後我是使用其他的做法: 
轉錄: http://www.vckbase.com/document/viewdoc/?id=416

中的
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = "c:\\MyProgram.exe";
ShExecInfo.lpParameters = "";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess,INFINITE);

其中 我忘記說了,其實我要執行的程式可以下common讓它關閉^^!!

系統時間:2024-05-06 16:44:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!