php直接拨号代码,c#自动ADSL拨号代码

鉴于网上搜索的c#拨号代码总是会弹出拨号连接的界面,基本等于无用,现在给出一段代码,经过本人的调试,完全可以实现自动ADSL拨号,昨夜测试完成后,不敢独享。具体用途,各位自己决定吧

public uint Connect(string EntryName, string UserName, string Password, out IntPtr RasConn)

{

uint retVal;

uint r=0;

RasConn=IntPtr.Zero;

byte[] bRASDIALPARAMS =new byte[1464];

fixed (byte* pAddr = bRASDIALPARAMS)

{

byte* pCurrent = pAddr;

Marshal.WriteInt32((IntPtr)pCurrent, bRASDIALPARAMS.Length);

pCurrent += 4;

foreach (byte b in Encoding.Unicode.GetBytes(EntryName))

{

Marshal.WriteByte((IntPtr)pCurrent, b);

pCurrent++;

}

pCurrent = pAddr + 0x192;//0x192 - offset for RASDIALPARAMS.UserName

foreach (byte b in Encoding.Unicode.GetBytes(UserName))

{

Marshal.WriteByte((IntPtr)pCurrent, b);

pCurrent++;

}

pCurrent = pAddr + 0x394;//0x394 - offset for RASDIALPARAMS.Password

foreach (byte b in Encoding.Unicode.GetBytes(Password))

{

Marshal.WriteByte((IntPtr)pCurrent, b);

pCurrent++;

}

retVal = RAS.RasDial(IntPtr.Zero, IntPtr.Zero, (IntPtr)pAddr, 0, IntPtr.Zero, ref RasConn);

}

return retVal;

}

代码中使用了指针,因此,需要在编译的时候添加/unsafe编译选项,RasDial可以在rasapi32.dll中找到,需要做一下封送和接口定义

[DllImport("rasapi32.dll", CharSet = CharSet.Auto)]

public extern static uint RasDial(

IntPtr dialExtensions,

IntPtr phoneBookPath,

IntPtr rasDialParam,

uint NotifierType,

IntPtr notifier,

ref IntPtr pRasConn

);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值