zoukankan      html  css  js  c++  java
  • C#实现拨号上网

    using System; using System.Runtime.InteropServices; namespace RAS { public class RasManager { public const int RAS_MaxEntryName = 256; public const int RAS_MaxPhoneNumber = 128; public const int UNLEN = 256; public const int PWLEN = 256; public const int DNLEN = 15; public const int MAX_PATH = 260; public const int RAS_MaxDeviceType = 16; public const int RAS_MaxCallbackNumber = RAS_MaxPhoneNumber; public delegate void Callback(uint unMsg, int rasconnstate, int dwError); [StructLayout(LayoutKind.Sequential, Pack=4, CharSet=CharSet.Auto)] public struct RASDIALPARAMS { public int dwSize; [MarshalAs(UnmanagedType.ByValTStr, SizeConst=RAS_MaxEntryName + 1)] public string szEntryName; [MarshalAs(UnmanagedType.ByValTStr, SizeConst=RAS_MaxPhoneNumber + 1)] public string szPhoneNumber; [MarshalAs(UnmanagedType.ByValTStr, SizeConst=RAS_MaxCallbackNumber+ 1)] public string szCallbackNumber; [MarshalAs(UnmanagedType.ByValTStr, SizeConst=UNLEN + 1)] public string szUserName; [MarshalAs(UnmanagedType.ByValTStr, SizeConst=PWLEN + 1)] public string szPassword; [MarshalAs(UnmanagedType.ByValTStr, SizeConst=DNLEN + 1)] public string szDomain; public int dwSubEntry; public int dwCallbackId; } [DllImport("rasapi32.dll", CharSet=CharSet.Auto)] public static extern int RasDial (int lpRasDialExtensions, string lpszPhonebook, ref RASDIALPARAMS lprasdialparams, int dwNotifierType, Callback lpvNotifier, ref int lphRasConn); private RASDIALPARAMS RasDialParams; private int Connection; public RasManager() { Connection = 0; RasDialParams = new RASDIALPARAMS(); RasDialParams.dwSize = Marshal.SizeOf(RasDialParams); } #region Properties public string UserName { get { return RasDialParams.szUserName; } set { RasDialParams.szUserName = value; } } public string Password { get { return RasDialParams.szPassword; } set { RasDialParams.szPassword = value; } } public string EntryName { get { return RasDialParams.szEntryName; } set { RasDialParams.szEntryName = value; } } #endregion public int Connect() { Callback rasDialFunc = new Callback(RasManager.RasDialFunc); RasDialParams.szEntryName += "\0"; RasDialParams.szUserName += "\0"; RasDialParams.szPassword += "\0"; int result = RasDial (0, null, ref RasDialParams, 0, rasDialFunc, ref Connection); return result; } public static void RasDialFunc(uint unMsg, int rasconnstate, int dwError) { } } } An example of establishing a connection: RasManager myRas = new RasManager(); myRas.EntryName = "MyPhonebook entry"; // entry name in phonebook myRas.UserName = "username"; myRas.Password = "password"; myRas.Connect().ToString();
  • 相关阅读:
    左偏树
    论在Windows下远程连接Ubuntu
    ZOJ 3711 Give Me Your Hand
    SGU 495. Kids and Prizes
    POJ 2151 Check the difficulty of problems
    CodeForces 148D. Bag of mice
    HDU 3631 Shortest Path
    HDU 1869 六度分离
    HDU 2544 最短路
    HDU 3584 Cube
  • 原文地址:https://www.cnblogs.com/adodo1/p/4327147.html
Copyright © 2011-2022 走看看