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

請教...如何由程式直接控制撥號???

尚未結案
jojoboy
初階會員


發表:65
回覆:108
積分:34
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-08 09:26:33 IP:61.220.xxx.xxx 未訂閱
請教各方前輩.... 要如何直接由Delphi透過Windows Api來控制撥號呢..... 我在站上及書上所得到的資訊,都是必須先在撥號網路中建立好一個撥號連線, 然後由Delphi去呼叫那個撥號連線的..... 不知道有沒有前輩曾經試過或是知道何種方式,可以不透過撥號網路.直接由Delphi去控制撥號連線的....... PS.站上所提供的Dialer32元件我已試過...但都沒撥號音...還在努力測試中!! ~Thanks~ 發表人 - jojoboy 於 2003/05/08 10:03:58
hagar
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-08 21:13:23 IP:202.39.xxx.xxx 未訂閱
一些相關 API: CreateFile: 開啟 Comport CloseHandle: 關閉由 CreateFile 開啟的 Comport GetCommState: 取得 Comport 的設定參數(如 Baud Rate 等) SetCommState: 設定 Comport 參數 WriteFile: 經由 Comport 將資料送出 ReadFile: 讀出 Comport 內的資料 更詳細的您可以參考范逸之/陳立元編著的 Delphi 與 RS232 - 串列通訊控制一書 網路上的一些範例: http://www.delphiboy.com/cgi-bin/doc/datacontent.php?no=109 http://www.yesky.com/20010625/186768.shtml 此外, Turbopower 也有相關的 Modem 元件.    --- 每個人都是一本書 發表人 - hagar 於 2003/05/08 21:14:19
jojoboy
初階會員


發表:65
回覆:108
積分:34
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-09 11:38:22 IP:61.220.xxx.xxx 未訂閱
感謝前輩的回答.... 我也試著用別的方式測試過了........ 我用了以下的方式測試.... 發現了一個奇怪的問題.... 因為我想防止使用者端的撥號連線的使用者名稱與密碼被改掉... 所以加了一段設定的程式.... 但....雖然可以正確的將值填入...但卻在撥通連接至主機無法通過驗證.. 但拿掉那掉設定的程式.....卻又可以正常通過驗證了...怪怪的... procedure TForm1.Button1Click(Sender: TObject); var iReturn1 : integer; iReturn2 : integer; RASParams : TRasDialParams; DialParams : TRasDialParams; cErrorString : Array[0..100] of Char; lpfP : LongBool; begin //設定撥號網路的使用者名稱及密碼 with RASParams do begin dwSize := Sizeof(TRasDialParams); StrPcopy(szEntryName,'123');//設定撥號網路123 StrPcopy(szUserName,'user1');//設定使用者名稱 StrPcopy(szPassWord,'1234');//設定密碼 end; lpfP := False; iReturn1 := RasSetEntryDialParams(nil, RASParams, lpfP); if iReturn1 <> 0 then begin showmessage('UserName or Password Write Error!!'); Exit; end; //啟動撥號網路 FillChar(DialParams, SizeOf(TrasDialParams),0); With DialParams do begin dwSize := Sizeof(TrasDialParams); strPCopy(szEntryname,'123'); end; iReturn2 := RasDial(nil,nil,DialParams,0,nil,hRas); if iReturn2 <> 0 then begin if hRas <> 0 then RashangUp(hRas); RasGetErrorString(iReturn2,cErrorString,100); Showmessage(cErrorString); end; end;
系統時間:2024-07-29 17:44:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!