关于“拨号上网”的有关问题(共200分),不能用控件。(100分)

  • 主题发起人 主题发起人 leo.yuan
  • 开始时间 开始时间
L

leo.yuan

Unregistered / Unconfirmed
GUEST, unregistred user!
关于“拨号上网”的有关问题(共200分),不能用控件。

问题一: 如何用DELPHI读出网络拨号中每个“连接”的名字?

问题二: 在DELPHI中如何检测到拨号已连接?(唉...RasEnumConnections 我总是用不对)

问题三: 用DELPHI如何断开网络连接?

请给我EMAIL: topic@pub.xaonline.com

谢谢!!!!!!!!!!!!!!
 
如果是我, 我就去下载一套拨号控件(带源码的).
如果你不想用就不要用它.
然后研究它的原代码.
然后你可以省100分
 
是啊,下一个控件,不想用的话就copy一大段出来搞个自己的控件不就成了?,反正控件中也是狂用ras的api
的。
 
去下个ics吧,有源码,自己研究一下就成了。
 
钱给我了,东西给你发了。编译一下就可以用了!
 
coolblue能不能给我发送以愤呢,另外给分
devuser@sina.com
 
装个MSDN,上面有用C写的关于拨号的例子,绝对的不用控件,全部使用API函数。
 
参考俺的程序源码吧!
http://go.163.com/~shinelab/dialfee.zip
不清楚的地方可与俺讨论。
 
先回答第一个问题:
注 册 表 的 HKEY_USERS/.Default/RemoteAccess/Addresses 下,
列 出 了 已 经 在 拨 号 网 络 中 建 立 了 的 拨 号 连 接 的
名 称 及 其 属 性 设 置.
 
网络拨号中每个“连接”的名字: RasEnumConnections/RasEnumEntries

下面摘自我的“中国网爪”软件中


{*****************************************************************}
{ Ras Declare }
const
RAS_MaxEntryName = 256;
RAS_MaxDeviceName = 128;
RAS_MaxDeviceType = 16;

type
PHRASConn = ^HRASConn;
HRASConn = DWORD;
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;

function RasHangUp( RASConn: HRasConn): LongInt;
stdcall; external 'rasapi32.dll' name 'RasHangUpA';
function RasEnumConnections( var RASConn: TRasConn;
var BufSize: DWord; var Connections: DWord ): LongInt;
stdcall; external 'rasapi32.dll' name 'RasEnumConnectionsA';

{*****************************************************************}


function AutoDial(TryTimes: integer; hwnd: THandle): Boolean;
begin
Result:= False;
if InternetAutodial(
INTERNET_AUTODIAL_FORCE_ONLINE
//INTERNET_AUTODIAL_FORCE_UNATTENDED
,hwnd) then Result:= True;
end;

function AutoDialHangUp: Boolean;
//const MaxConnections = 10;
var
RasConn : TRASCONN;
longSize, Actives: DWord;
begin
// Result:= InternetAutodialHangup(0);
Actives:= 0;
RasConn.dwSize := sizeof(TRASConn);
longSize := RasConn.dwSize;
Result:= RasEnumConnections(RasConn,longSize,Actives)=0;
if Result then Result:= RasHangUp(RasConn.RasConn)=0;
end;
 
多人接受答案了。
 
后退
顶部