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

如何叫出執行檔

尚未結案
kraen4468
初階會員


發表:66
回覆:112
積分:35
註冊:2003-12-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-27 14:13:15 IP:61.222.xxx.xxx 未訂閱
如何寫出一一執行exe檔呢 例如說:第一個程式執行關閉後自動出來第二個程式 ~我還在學習狀態希望多多向您學習~
johnjohn
一般會員


發表:6
回覆:59
積分:13
註冊:2004-04-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-27 17:53:51 IP:203.70.xxx.xxx 未訂閱
kraen4468你好 用WinExec("檔名"NULL)可以嗎? e.g. WinExec(1.exe,NULL); WinExec(2.exe,NULL); WinExec(3.exe,NULL); . WinExec(n.exe,NULL); >>SPATIAL INFORMATION IS COOOOL<<
artist1002
高階會員


發表:2
回覆:155
積分:151
註冊:2002-09-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-27 17:54:00 IP:211.76.xxx.xxx 未訂閱
嗯...用批次檔如何 寫一個BAT檔 照順序把執行檔放進去 然後執行BAT檔 example
c:\1.exe
c:\2.exe
kraen4468
初階會員


發表:66
回覆:112
積分:35
註冊:2003-12-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-27 18:00:03 IP:61.222.xxx.xxx 未訂閱
可以執行exe是沒錯可是要會判斷第一個執行檔關掉了才自動執行第二個 ~我還在學習狀態希望多多向您學習~
lu
高階會員


發表:11
回覆:189
積分:195
註冊:2003-11-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-27 18:21:31 IP:221.169.xxx.xxx 未訂閱
批次檔是這樣阿,第一個執行檔關掉了才自動執行第二個    你要鼻要試試看阿?        ========================= 大家一起快樂寫程式
kraen4468
初階會員


發表:66
回覆:112
積分:35
註冊:2003-12-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-27 18:28:47 IP:61.222.xxx.xxx 未訂閱
可是批次檔要寫死,我想的是可以用文件檔來隨時更改有辨法嗎? ~我還在學習狀態希望多多向您學習~
kraen4468
初階會員


發表:66
回覆:112
積分:35
註冊:2003-12-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-04-27 18:32:30 IP:61.222.xxx.xxx 未訂閱
johnjohn你好 你說用WinExec("檔名"NULL)這個方法我試了好多次 都不形 ~我還在學習狀態希望多多向您學習~
johnjohn
一般會員


發表:6
回覆:59
積分:13
註冊:2004-04-20

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-04-27 18:37:06 IP:203.70.xxx.xxx 未訂閱
int fun(char* in) { WinExec(in,NULL); return 0; } /------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { char* what; int i; what="檔名.exe"; i=fun(what); if(!i) what="檔名2.exe"; i=fun(what); if(!i) what="檔名3.exe"; .....依此類推 } p.s.檔名.exe最好跟你的project在同一個資料夾中 >>SPATIAL INFORMATION IS COOOOL<<
johnjohn
一般會員


發表:6
回覆:59
積分:13
註冊:2004-04-20

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-04-27 18:41:48 IP:203.70.xxx.xxx 未訂閱
嗯...我剛剛試了一下 第一個方法沒有問題阿.. 效果很好ㄚ,應該是跟你的需求一樣 WinExec(1.exe,NULL); WinExec(2.exe,NULL); WinExec(3.exe,NULL); . WinExec(n.exe,NULL); *.exe與你的project放在一起喔 >>SPATIAL INFORMATION IS COOOOL<<
johnjohn
一般會員


發表:6
回覆:59
積分:13
註冊:2004-04-20

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-04-27 18:44:24 IP:203.70.xxx.xxx 未訂閱
抱歉,更正一下,應該是 WinExec("1.exe",NULL); WinExec("2.exe",NULL); WinExec("3.exe",NULL); . WinExec("n.exe",NULL); >>SPATIAL INFORMATION IS COOOOL<<
HomeSound
中階會員


發表:44
回覆:178
積分:94
註冊:2002-08-31

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-04-27 20:32:00 IP:61.30.xxx.xxx 未訂閱
您好: 引用包大人的案例. 可以試試看
STARTUPINFO si; //等待Test.exe完成後,再秀Message,保證程式執行完PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb=sizeof(si);
ZeroMemory(&pi, sizeof(pi));
if(!CreateProcess(NULL,"Test.exe",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi))
{ 
  ShowMessage("CreateProcess failed!" IntToStr(GetLastError()));
}
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
ShowMessage("The Program is terminate!");
--==多看.多學.多聽==--
------
--==多看.多學.多聽==--
kj68215
初階會員


發表:47
回覆:91
積分:27
註冊:2003-08-09

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-04-28 09:37:25 IP:203.68.xxx.xxx 未訂閱
小弟在猜想,您的意思應該是說... 關掉一個程式之後,就自動執行到二個程式. 就好像Windows 2000等作業系統,在登入前會要要求你輸入帳號、密碼,若成功則可以取得Admin...Power User等等相關權限,然後正式使用OS系統,對吧?!其實很簡單的,呼叫>>,在>> (>> ( class="code"> //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { ShellExecute(NULL,NULL,"Login.exe",NULL,NULL,SW_SHOW); Close(); } //--------------------------------------------------------------------------- code中,紅色的部分(Login.exe)是你要開啟的檔案! code中,綠色的部分,你試試看改成 "colse" p.s:的確有開啟,但是又馬上被關掉了!感覺上似乎沒執行到! 這是用 > 另外補充... 就是有關於 class="code"> WinExec("Login.exe",NULL); Close(); 若注意一下,你會發現這兩個有一點點不一樣唷! ----------------------- 請多多指教啦!!^^ 發表人 -
------
-----------------------
請多多指教啦!!^^
folkchen
高階會員


發表:9
回覆:232
積分:173
註冊:2003-10-09

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-04-28 10:55:43 IP:211.20.xxx.xxx 未訂閱
是我的BCB怪怪的嗎 上列的方式我都不能用(WinExec,ShellExecute) 只有下面那篇的方式 Run 的起來 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=48587
kraen4468
初階會員


發表:66
回覆:112
積分:35
註冊:2003-12-04

發送簡訊給我
#14 引用回覆 回覆 發表時間:2004-04-28 11:01:39 IP:61.222.xxx.xxx 未訂閱
是我的BCB怪怪的嗎 上列的方式我都不能用(WinExec,ShellExecute) 只有下面那篇的方式 Run 的起來 ----------------------------------------------------------------- 你指的是上面那一篇講的呢? ~我還在學習狀態希望多多向您學習~
folkchen
高階會員


發表:9
回覆:232
積分:173
註冊:2003-10-09

發送簡訊給我
#15 引用回覆 回覆 發表時間:2004-04-28 11:03:58 IP:211.20.xxx.xxx 未訂閱
更正 是我豬頭~~ 應該是前兩個做法,我有帶路徑,可是不能用一般路徑字串的寫法 所以才不會Run
kraen4468
初階會員


發表:66
回覆:112
積分:35
註冊:2003-12-04

發送簡訊給我
#16 引用回覆 回覆 發表時間:2004-04-28 11:12:59 IP:61.222.xxx.xxx 未訂閱
我知道你講的意思了~  
 
STARTUPINFO si; //等待Test.exe完成後,再秀Message,保證程式執行完PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb=sizeof(si);
ZeroMemory(&pi, sizeof(pi));
if(!CreateProcess(NULL,"Test.exe",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi))
{ 
  ShowMessage("CreateProcess failed!" IntToStr(GetLastError()));
}
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
ShowMessage("The Program is terminate!");
紅色那部份是他沒注意到你要把他移下來 ~我還在學習狀態希望多多向您學習~
系統時間:2024-07-29 7:21:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!