您的位置:首页 > 编程语言 > C#

c# wince 禁止gprs/wcdma拨号时候弹出密码输入框

2015-11-12 10:34 411 查看
有时候写程序需要直接把SIM卡用户名密码写入程序,这样方便省事,直接启动就行了,免得麻烦。

如下类,直接拨号前调用一下set()函数就可以了,已测试是OK的

public class wcdmaset

{

public static void set()

{

RASENTRY rasEntry = new RASENTRY();

//RASDIALPARAMS RasDialParams = new RASDIALPARAMS(); ;

int dwSize = Marshal.SizeOf(rasEntry);

byte[] lpb = new byte[1024];

int lpbSize = lpb.Length;

int ret = -1;

//初始化

rasEntry.dwSize = dwSize;

ret = RasGetEntryProperties(null, "WCDMA", ref rasEntry, ref dwSize, lpb, ref lpbSize);

if (ret == 0)

{

rasEntry.dwfOptions &= ~RASEO_PreviewUserPw;

ret = RasSetEntryProperties(null, "WCDMA", ref rasEntry, rasEntry.dwSize, 0, 0);

// ret = RasSetEntryProperties(null, entryName, ref rasEntry, rasEntry.dwSize, lpb, lpbSize);

}

}

#region Ras.h Constants

const int RAS_CHAR_SIZE = 2;

const int MAX_PATH = 260;

const int RAS_MaxEntryName = 20;

const int RAS_MaxDeviceName = 128;

const int RAS_MaxPhoneNumber = 128;

const int RAS_MaxCallbackNumber = 48;

const uint RASEO_PreviewUserPw = 0x01000000;

/// <summary>

/// Defines the maximum length of a device type.

/// </summary>

private const int RAS_MaxDeviceType = 16;

/// <summary>

/// Defines the maximum length of an IP address.

/// </summary>

private const int RAS_MaxIpAddress = 15;

/// <summary>

/// Defines the maximum length of an IPX address.

/// </summary>

private const int RAS_MaxIpxAddress = 21;

/// <summary>

/// Defines the maximum length of an area code.

/// </summary>

private const int RAS_MaxAreaCode = 10;

/// <summary>

/// Defines the maximum length of a pad type.

/// </summary>

private const int RAS_MaxPadType = 32;

/// <summary>

/// Defines the maximum length of an X25 address.

/// </summary>

private const int RAS_MaxX25Address = 200;

/// <summary>

/// Defines the maximum length of a facilities.

/// </summary>

private const int RAS_MaxFacilities = 200;

/// <summary>

/// Defines the maximum length of a user data.

/// </summary>

private const int RAS_MaxUserData = 200;

/// <summary>

/// Defines the maximum length of a reply message.

/// </summary>

private const int RAS_MaxReplyMessage = 1024;

/// <summary>

/// Defines the maximum length of a DNS suffix.

/// </summary>

private const int RAS_MaxDnsSuffix = 256;

#endregion

#region

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

public struct RASENTRY

{

public int dwSize;

public uint dwfOptions;

//

// Location/phone number.

//

public int dwCountryID;

public int dwCountryCode;

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)RAS_MaxAreaCode + 1)]

public string szAreaCode;

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)RAS_MaxPhoneNumber + 1)]

public string szLocalPhoneNumber;

public int dwAlternateOffset;

//

// PPP/Ip

//

public RASIPADDR ipaddr;

public RASIPADDR ipaddrDns;

public RASIPADDR ipaddrDnsAlt;

public RASIPADDR ipaddrWins;

public RASIPADDR ipaddrWinsAlt;

//

// Framing

//

public int dwFrameSize;

public int dwfNetProtocols;

public int dwFramingProtocol;

//

// Scripting

//

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)MAX_PATH)]

public string szScript;

//

// AutoDial

//

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)MAX_PATH)]

public string szAutodialDll;

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)MAX_PATH)]

public string szAutodialFunc;

//

// Device

//

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)RAS_MaxDeviceType + 1)]

public string szDeviceType;

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)RAS_MaxDeviceName + 1)]

public string szDeviceName;

//

// X.25

//

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)RAS_MaxPadType + 1)]

public string szX25PadType;

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)RAS_MaxX25Address + 1)]

public string szX25Address;

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)RAS_MaxFacilities + 1)]

public string szX25Facilities;

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = (int)RAS_MaxUserData + 1)]

public string szX25UserData;

public int dwChannels;

//

// Reserved

//

public int dwReserved1;

public int dwReserved2;

public int dwCustomAuthKey;

}

/// <summary>

/// Describes an IPv4 address.

/// </summary>

[StructLayout(LayoutKind.Sequential)]

public struct RASIPADDR

{

[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]

public byte[] addr;

}

/// <summary>

/// Describes a remote access connection.

/// </summary>

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

public struct RASCONN

{

public int dwSize;

public IntPtr hRasConnHandle;

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = RAS_MaxEntryName + 1)]

public string entryName;

}

/// <summary>

/// Describes a TAPI device capable of establishing a remote access service connection.

/// </summary>

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

public struct RASDEVINFO

{

public int size;

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = RAS_MaxDeviceType + 1)]

public string type;

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = RAS_MaxDeviceName + 1)]

public string name;

}

#endregion

[DllImport("coredll.dll")]

public static extern int RasGetEntryProperties(string lpszPhoneBook,

string szEntry, ref RASENTRY lpEntry,

ref int dwsize, byte[] lpb, ref int lpdwSize);

/// <summary>

/// Changes the connection information for an entry in the phone book or creates a new phone-book entry.

/// </summary>

/// <param name="lpszPhonebook">Pointer to a null-terminated string that specifies the full path and file name of a phone-book (PBK) file.

/// If this parameter is NULL, the function uses the current default phone-book file.</param>

/// <param name="lpszEntry">Pointer to a null-terminated string that specifies an entry name.

/// If the entry name matches an existing entry, RasSetEntryProperties modifies the properties of that entry.

/// If the entry name does not match an existing entry, RasSetEntryProperties creates a new phone-book entry.</param>

/// <param name="lpRasEntry">Pointer to the RASENTRY structure that specifies the connection data to associate with the phone-book entry.</param>

/// <param name="dwEntryInfoSize">Specifies the size, in bytes, of the buffer identified by the lpRasEntry parameter.</param>

/// <param name="lpbDeviceInfo">This parameter is unused. The calling function should set this parameter to NULL.</param>

/// <param name="dwDeviceInfoSize">This parameter is unused. The calling function should set this parameter to zero.</param>

/// <returns></returns>

[DllImport("Coredll.dll", SetLastError = true, CharSet = CharSet.Auto)]

private static extern int RasSetEntryProperties(

string lpszPhonebook,

string lpszEntry,

ref RASENTRY lpRasEntry,

int dwEntryInfoSize,

byte lpb,// byte[] lpb,

int dwDeviceInfoSize);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: