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

請問如何傳指令給DOS程式?

答題得分者是:Ming Lin
kdoo
一般會員


發表:2
回覆:2
積分:0
註冊:2003-03-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-23 10:14:13 IP:61.220.xxx.xxx 未訂閱
請問當使用ShellExecute 呼叫出一個DOS的程式,那之後我要如何將命令傳給 這個DOS程式,要使用什麼指令呢,是sendmessage嗎? 謝謝.....
deal
一般會員


發表:6
回覆:33
積分:22
註冊:2003-04-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-23 11:16:14 IP:163.29.xxx.xxx 未訂閱
引言: 請問當使用ShellExecute 呼叫出一個DOS的程式,那之後我要如何將命令傳給 這個DOS程式,要使用什麼指令呢,是sendmessage嗎? 謝謝.....
在呼叫ShellExecute時就可以給參數傳給DOS程式了,只要將SHELLEXECUTEINFO中的lpParameters塞入你要給的參數就可以了!!
kdoo
一般會員


發表:2
回覆:2
積分:0
註冊:2003-03-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-23 12:05:00 IP:61.220.xxx.xxx 未訂閱
可是我是要開啟之後,像輸入不用的資料給他,所以每次都是不用的參數. 像帳號登入,要啟動那個程式後,再打入名字 enter,再打入密碼 enter,這樣的動作,那應該不能在呼叫的時候傳入吧!
deal
一般會員


發表:6
回覆:33
積分:22
註冊:2003-04-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-23 12:40:31 IP:163.29.xxx.xxx 未訂閱
引言: 可是我是要開啟之後,像輸入不用的資料給他,所以每次都是不用的參數. 像帳號登入,要啟動那個程式後,再打入名字 enter,再打入密碼 enter,這樣的動作,那應該不能在呼叫的時候傳入吧!
參考看看 http://delphi.ktop.com.tw/topic.php?topic_id=20897
kdoo
一般會員


發表:2
回覆:2
積分:0
註冊:2003-03-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-23 17:33:01 IP:61.220.xxx.xxx 未訂閱
那是要用SendMessage還是PostMessage呢? 還有在裡面的Handle應該還要去抓吧! 那我要怎麼知道他的Handle是多少? 因為不太了解,所以不知道,有沒有更詳細的文章可以看,謝
Ming Lin
一般會員


發表:27
回覆:53
積分:21
註冊:2003-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-28 14:46:59 IP:61.57.xxx.xxx 未訂閱
這樣應該很清楚~ 加油 *^^* char filepath[255],want_file[9]="aaaaa.exe"; char *find_file; //尋找project路徑下有無aaaaa.exe檔案 filepath=檔案路徑 file=檔案名稱 SearchPath(NULL,want_file,NULL,255,filepath,&find_file); AnsiString temp=filepath; int len=temp.AnsiPos(want_file); if (len==0) //如果filepath中沒有want_file ShowMessage(" Can't find " AnsiString(want_file) " !!"); else{ //執行路徑下之檔案 ShellExecute(0,"open",filepath,"BCSP COM1 115200",NULL,SW_SHOW); //找出全部顯示window之text符合條件者 BtcliWindow = FindWindow(NULL,filepath); if (BtcliWindow != 0) { Write_Handel(BtcliWindow,"r"); Write_Handel(BtcliWindow,"gppio"); //Write_Handel(BtcliWindow,"quit"); //PostMessage(BtcliWindow,WM_CLOSE,0,0); } } } //-------------------------------------------------------------------void Write_Handel(void *Handle,char *str) { int index,str_len; str_len = StrLen(str); for (index=0;index<=str_len;index ) PostMessage(Handle,WM_CHAR,str[index],0); //keypress str PostMessage(BtcliWindow,WM_CHAR,13,0); //keypress "enter" Sleep(100); } //--------------------------------------------------------------------
jackkcg
站務副站長


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-29 01:49:10 IP:61.64.xxx.xxx 未訂閱
像帳號登入,要啟動那個程式後,再打入名字 enter,再打入密碼 enter,這樣的動作,那應該不能在呼叫的時候傳入吧 個人 覺的是否是使用 虛擬鍵 執行就ok (討論啦) 使用dos command 傳 我想只是方法之一 (非不得已情況使用) 再windows下 由A執行 所謂的 機械人程序 應該要使用api來處理比較恰當 因為這牽涉到 秒數 (時間問題) Ming Lin 的方式應該算解題喔 不錯喔 ********************************************************* 哈哈&兵燹 最會的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
系統時間:2024-05-18 4:46:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!