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

中斷連線問題

尚未結案
xw
一般會員


發表:21
回覆:7
積分:5
註冊:2004-01-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-02 17:41:40 IP:202.175.xxx.xxx 未訂閱
請問怎樣才可用delphi 直接中斷和直接連線
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-02 18:24:22 IP:61.221.xxx.xxx 未訂閱
xw 你好: Connected:=true; Connected:=false; 問的蠻模糊的!! 所以回答就模糊!!
------
======================
昏睡~
不昏睡~
不由昏睡~
hagar
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-03 08:43:18 IP:202.39.xxx.xxx 未訂閱
也許有幫助: http://groups.google.com.tw/groups?hl=zh-TW&lr=&ie=UTF-8&oe=UTF-8&th=83cd80fc410b1742&rnum=4 http://groups.google.com.tw/groups?hl=zh-TW&lr=&ie=UTF-8&oe=UTF-8&th=93e07399c55b08e0&rnum=10    --- Everything I say is a lie. --<-<-<@
xw
一般會員


發表:21
回覆:7
積分:5
註冊:2004-01-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-05 20:42:44 IP:202.175.xxx.xxx 未訂閱
例如 有兩個按鈕分為中斷和連線的功能 按第一個按鈕就連線,不出現windows的撥號程式 按第二個按鈕就中斷連線 唔該 發表人 - xw 於 2004/02/05 20:44:18
shiaung
一般會員


發表:3
回覆:3
積分:1
註冊:2003-12-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-11 23:10:19 IP:61.66.xxx.xxx 未訂閱
你好: 你的問題問的不夠詳細,不知你要用那一個元件,如果以IdFTP來說,可以使用下列方法,例如FTP(使用BCB的方法,應和delphi差不多):
    IdFTP1->Host=172.100.100.1;  //設定主機位址
    IdFTP1->Password=1234;       //設定password
    IdFTP1->User=myserver;       //設定使用者名稱
    IdFTP1->Connect(true);    //此行主要是去連上Server
     //IdFTP1->Disconnect();     //此指令是中斷連線
 
發表人 - shiaung 於 2004/02/11 23:11:19
mysql
一般會員


發表:7
回覆:15
積分:4
註冊:2003-12-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-12 10:14:17 IP:211.156.xxx.xxx 未訂閱
引言: 有兩個按鈕分為中斷和連線的功能 按第一個按鈕就連線,不出現windows的撥號程式 按第二個按鈕就中斷連線 發表人 - xw 於 2004/02/05 20:44:18
我觉得你的意思应该是这样:(以下内容我转贴自其他地方的) 用Delphi编写可以断开Internet连接的程序 作者: 陈学军 评价: 上站日期: 2002-04-08 内容说明: 来源: 赛迪网 在WIN9X下,如果安装了拨号网络,则在WINDOWS的系统目录(System目录)下将有两个拨号网络管理程序库RasApi32.DLL 和RasApi16.DLL,因此我们可以利用RAS(远程访问服务)系列函数实现断开指定的拨号连接。在这里我们将使用RasHangUp函数。然而如何正确使用这些API函数是完成应用程序的关键。 挂断拨号连接的RasApi32函数为RasHangUp,其函数原型为: RasHangUp( HRASCONN : DWORD ):DWORD;stdcall; 参数说明: HRASCONN : DWORD要挂断的拨号连接的句柄,此句柄是来源由调用函数RasEnumConnections的返回值。 返回值:函数的返回值为0表示执行成功;不为0执行失败。 由上面的函数得知:我们必须首先获得拨号连接的句柄,因此在应用程序中还需使用RasEnumConnections函数。 获取所有活动的拨号连接的信息列表(连接句柄和电话号码)的RasApi32函数为RasEnumConnections,其函数原型为: RasEnumConnections(LPRASCONN lprasconn,LPDWORD lpcb,LPDWORD lpcConnections) :DWORD;stdcall; 参数说明: lprasconn:接收活动连接的缓冲区的指针; lpcb:接收缓冲区的字节大小; lpcConnections:实际的活动连接数。 返回值函数的返回值为0表示执行成功;不为0执行失败。 为了正确使用这两个函数,我们要事先定义函数,常数,结构类型及其他信息,有关这一部份的内容都写入rasapi.pas单元。 源程序: program main; uses Forms, Unit1 in 'Unit1.pas' {Form1}, rasapi in 'rasapi.pas'; {$R *.RES} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DdeMan; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses rasapi; {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var bufsize: Cardinal; numEntries: Cardinal; x: Integer; entries: Array[1..10] of TRasConn;//拨号连接数组(假设最多有10个活动的拨号连接) stat: TRasConnStatus; hRas: HRasConn; conexion:pRasConn; begin entries[1].dwSize := SizeOf(TRasConn); bufsize := SizeOf(TRasConn) * 10; FillChar(stat, Sizeof(TRasConnStatus), 0); stat.dwSize := Sizeof(TRasConnStatus); if RasEnumConnections(@entries[1], bufsize, numEntries) = 0 then begin if numEntries > 0 then with entries[1] do begin conexion:=Pointer(rasconn); hRas := Longint(conexion); if RasHangUp(hRas) < > 0 then ShowMessage('断开失败'); end else ShowMessage('断开成功'); end; end; unit rasapi; interface Uses WinTypes, WinProcs, Dialogs; Const UNLEN = 256; PWLEN = 256; DNLEN = 15; RAS_MaxEntryName = 256;//连接名称最大长度 RAS_MaxDeviceName = 128;//设备名称最大长度 RAS_MaxDeviceType = 16;//设备类型名称长度 { RAS_MaxParamKey = 32; RAS_MaxParamValue = 128;} RAS_MaxPhoneNumber = 128;//电话号码的最大长度 RAS_MaxCallbackNumber = RAS_MaxPhoneNumber; Type {UINT = Word;} PHRASConn = ^HRASConn; Type { 确认一活动的拨号连接. (为RasConnectEnum函数使用) } PRASConn = ^TRASConn;//拨号连接的句柄类型 TRASConn = record dwSize: DWORD;//该结构类型所占内存的字节大小 rasConn: HRASConn;//活动连接的句柄 szEntryName: Array[0..RAS_MaxEntryName] Of Char;// szDeviceType : Array[0..RAS_MaxDeviceType] Of Char; szDeviceName : Array [0..RAS_MaxDeviceName] of char; end; PRASConnStatus = ^TRASConnStatus; TRASConnStatus = Record dwSize: LongInt; rasConnstate: Word; dwError: LongInt; szDeviceType: Array[0..RAS_MaxDeviceType] Of Char; szDeviceName: Array[0..RAS_MaxDeviceName] Of Char; End; PRASDIALEXTENSIONS= ^TRASDIALEXTENSIONS; TRASDIALEXTENSIONS= Record dwSize: DWORD; dwfOptions: DWORD; hwndParent: HWnd; reserved: DWORD; end; PRASDialParams = ^TRASDialParams; TRASDialParams = Record dwSize: DWORD; szEntryName: Array[0..RAS_MaxEntryName] Of Char; szPhoneNumber: Array[0..RAS_MaxPhoneNumber] Of Char; szCallbackNumber: Array[0..RAS_MaxCallbackNumber] Of Char; szUserName: Array[0..UNLEN] Of Char; szPassword: Array[0..PWLEN] Of Char; szDomain: Array[0..DNLEN] Of Char; end; PRASEntryName = ^TRASEntryName; TRASEntryName = Record dwSize: LongInt; szEntryName: Array[0..RAS_MaxEntryName] Of Char; { Reserved: Byte;} End; //拨号函数 Function RasDial( lpRasDialExtensions : PRASDIALEXTENSIONS ; //在WIN9X下无用,可设置为NIL lpszPhonebook: PChar; //在WIN9X下无用,可设置为NIL lpRasDialParams : PRASDIALPARAMS; // 拨号参数,类型指针 dwNotifierType : DWORD; { 消息通知方式} lpvNotifier: DWORD; { 消息处理事件} var rasConn: HRASConn { 返回成功连接的连接句柄} ): DWORD; stdcall; function RasEnumConnections(RASConn: PrasConn; var BufSize: DWord; var Connections: DWord ): LongInt; stdcall; Function RasEnumEntries ( reserved: PChar; {保留字段,必须为空} lpszPhonebook: PChar ; { 电话本名称,在WIN9X下无用,可设置为NIL} lprasentryname: PRASENTRYNAME ; {接收拨号连接名称的缓冲区,是一类型数组的指针} var lpcb : DWORD; {接收拨号连接名称的缓冲区的大小} var lpcEntries : DWORD {实际获得拨号连接 的数目} ) : DWORD; stdcall; function RasGetConnectStatus(RASConn: hrasConn; { 指定活动连接的句柄 } RASConnStatus: PRASConnStatus { 获取活动连接状态信息的缓冲区} ): LongInt; stdcall; function RasGetErrorString(ErrorCode: DWord; { 错误代码标识} szErrorString: PChar; { 错误提示信息的缓冲区} BufSize: DWord {错误提示信息的缓冲区的大小 } ): LongInt; stdcall; function RasHangUp(RASConn: hrasConn ): LongInt; stdcall; function RasGetEntryDialParams( lpszPhonebook:PChar; {电话本名称,在WIN9X下无用,可设置为NIL } VAR lprasdialparams:TRASDIALPARAMS; {拨号参数,是一类型指针} VAR lpfPassword : BOOL {显示是否需要用户密码} ): DWORD; stdcall; implementation const RAS_DLL = 'RASAPI32'; function RasDial; external RAS_DLL name 'RasDialA'; function RasEnumConnections; external RAS_DLL name 'RasEnumConnectionsA'; function RasEnumEntries; external RAS_DLL name 'RasEnumEntriesA'; function RasGetConnectStatus; external RAS_DLL name 'RasGetConnectStatusA'; function RasGetErrorString; external RAS_DLL name 'RasGetErrorStringA'; function RasHangUp; external RAS_DLL name 'RasHangUpA'; function RasGetEntryDialParams; external RAS_DLL name 'RasGetEntryDialParamsA'; end. 以上代码在PWIN98 DELPHI5环境下调试通过。
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-04-26 13:52:08 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

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