当前位置:  编程技术>.net/c#/asp.net

用C#写的ADSL拨号程序的代码示例

    来源: 互联网  发布时间:2014-10-13

    本文导语:  ADSL自动拨号类,前提是在系统中已经有了一个宽带拨号连接 调用代码: RASDisplay ras = new RASDisplay(); ras.Disconnect();//断线 ras.Connect("adsl");//拨号  代码如下:using System;  using System.Runtime.InteropServices;  public struct RASCONN  {     ...

ADSL自动拨号类,前提是在系统中已经有了一个宽带拨号连接
调用代码:
RASDisplay ras = new RASDisplay();
ras.Disconnect();//断线
ras.Connect("adsl");//拨号 


代码如下:

using System; 
using System.Runtime.InteropServices; 
public struct RASCONN 

    public int dwSize; 
    public IntPtr hrasconn; 
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst=257)] 
    public string szEntryName; 
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst=17)] 
    public string szDeviceType; 
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst=129)] 
    public string szDeviceName; 


[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Auto)] 
public struct RasStats 

    public int dwSize; 
    public int dwBytesXmited; 
    public int dwBytesRcved; 
    public int dwFramesXmited; 
    public int dwFramesRcved; 
    public int dwCrcErr; 
    public int dwTimeoutErr; 
    public int dwAlignmentErr; 
    public int dwHardwareOverrunErr; 
    public int dwFramingErr; 
    public int dwBufferOverrunErr; 
    public int dwCompressionRatioIn; 
    public int dwCompressionRatioOut; 
    public int dwBps; 
    public int dwConnectionDuration; 


[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Auto)] 
public struct RasEntryName  
{  
    public int dwSize;  
    //[MarshalAs(UnmanagedType.ByValTStr,SizeConst=(int)RasFieldSizeConstants.RAS_MaxEntryName + 1)] 
    public string szEntryName;  
    //#if WINVER5 
    //  public int dwFlags; 
    //  [MarshalAs(UnmanagedType.ByValTStr,SizeConst=260+1)] 
    //  public string szPhonebookPath; 
    //#endif 

public class RAS 



     
    [DllImport("RaSAPi32.dll", EntryPoint="RasEnumConnectionsA", 
         SetLastError=true)] 

    internal static extern int RasEnumConnections 
        ( 
        ref RASCONN lprasconn, // buffer to receive connections data 
        ref int lpcb, // size in bytes of buffer 
        ref int lpcConnections // number of connections written to buffer 
        ); 


    [DllImport("rasapi32.dll",CharSet=CharSet.Auto)] 
    internal static extern uint RasGetConnectionStatistics( 
        IntPtr hRasConn,       // handle to the connection 
        [In,Out]RasStats lpStatistics  // buffer to receive statistics 
        ); 
    [DllImport("rasapi32.dll",CharSet=CharSet.Auto)] 
    public extern static uint RasHangUp( 
        IntPtr hrasconn  // handle to the RAS connection to hang up 
        ); 

    [DllImport("rasapi32.dll",CharSet=CharSet.Auto)] 
    public extern static uint RasEnumEntries ( 
        string reserved,              // reserved, must be NULL 
        string lpszPhonebook,         // pointer to full path and 
        //  file name of phone-book file 
        [In,Out]RasEntryName[] lprasentryname, // buffer to receive 
        //  phone-book entries 
        ref int lpcb,                  // size in bytes of buffer 
        out int lpcEntries             // number of entries written 
        //  to buffer 
        ); 

    [DllImport("wininet.dll",CharSet=CharSet.Auto)] 
    public extern static int InternetDial( 
        IntPtr hwnd, 
        [In]string lpszConnectoid,  
        uint dwFlags, 
        ref int lpdwConnection, 
        uint dwReserved 
        ); 

    public RAS() 
    { 

    } 

         

public enum DEL_CACHE_TYPE //要删除的类型。 

    File,//表示internet临时文件 
    Cookie //表示Cookie 
}; 
public class RASDisplay 

    [DllImport("wininet.dll",CharSet=CharSet.Auto)] 
    public static extern bool  DeleteUrlCacheEntry( 
        DEL_CACHE_TYPE type 
        ); 
    private string m_duration; 
    private string m_ConnectionName; 
    private string[] m_ConnectionNames; 
    private double m_TX; 
    private double m_RX; 
    private bool m_connected; 
    private IntPtr m_ConnectedRasHandle; 

    RasStats status = new RasStats(); 
    public RASDisplay() 
    { 
        m_connected = true; 

        RAS lpras = new RAS(); 
        RASCONN lprasConn = new RASCONN(); 

        lprasConn.dwSize = Marshal.SizeOf(typeof(RASCONN)); 
        lprasConn.hrasconn = IntPtr.Zero; 

        int lpcb = 0; 
        int lpcConnections = 0; 
        int nRet = 0; 
        lpcb = Marshal.SizeOf(typeof(RASCONN)); 


        nRet = RAS.RasEnumConnections(ref lprasConn, ref lpcb, ref 
            lpcConnections); 


        if(nRet != 0) 

        { 
            m_connected = false; 
            return; 

        } 

        if(lpcConnections > 0) 
        { 


            //for (int i = 0; i  1) 
        { 
            names=new RasEntryName[lpNames]; 
            for(int i=0;i0) 
        { 
            for(int i=0;i

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux中如何拨号上网啊?我用的是adsl
  • red hat 8.0 adsl如何拨号
  • 请教linux 下的adsl拨号问题.
  • linux下如何ADSL拨号上网?
  • redhat linux 9 adsl拨号上网的问题。
  • Redhat 9在shell下面怎么用adsl拨号(图形界面没装)
  • 请教用Linux来作adsl拨号网关的最低配置
  • redhat7.3下怎么设置ADSL拨号上网
  • vmware的Linux虚拟机可以用adsl拨号吗?
  • 请问有谁知道那里有Linux系统的ADSL拨号软件下载!谢谢!
  • 怎样自动拨号上网(ADSL)?在线等
  • linux9下adsl拨号后的启动脚本
  • adsl拨号不能激活问题
  • 在Linux中如何配置拨号上网 和 ADSL上网
  • RH9 adsl 拨号 上网
  • REDHAT LINUX多少版本后开始支持ADSL拨号的?
  • redhat9下adsl拨号上网的问题(在线等)
  • 请问安装linux后如何用adsl拨号上网????
  • adsl拨号的问题
  • 怎样使用LINUX实现PPPoE(ADSL虚拟拨号)上网
  • Ubuntu ADSL上网,网络信息查看及防火墙相关配置命令介绍
  • 我以设置好adsl,怎样才能不止root,都可以adsl-start?
  • 上ADSL时的问题,输入:adsl-start没有反应,也没有提示!!!!!
  • 《DCAD-620U ADSL Modem》linux下没有驱动怎么办?高分请教(是usb的adsl modem)
  • USB的ADSL驱动程序!!(可以驱动电信的ADSL)
  • WIN2000机器上ADSL,另一台linux下如何做ADSL的代理让局域网中机器上网!
  • redhat怎么上ADSL?
  • linux下ADSL的用法
  • 求教!!linux下如何使用adsl!!
  • 请问在linux系统下,还可以用电信的adsl上网吗?
  • 请问RED LINUX可以用北京的ADSL么?




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3