请问如何调用windows的拨号程序拨号上网,空闲5分钟后自动断网
最好能有示例代码,谢谢!
最好能有示例代码,谢谢!
解决方案 »
- 国家-地区-省级SQL库
- FolderBrowserDialog 选取文件并返回文件路径时报错
- 在线急等:Developer Express 中Gridcontrol获取选中行单元格的值
- “System.Xml.Serialization.IXmlSerializable”在未被引用的程序集中定义
- vs2005中站点发布后的问题
- 心情好哦!!!散散分~~~~~ 顺便发布转到.net来之前的最后一个作品,请大家帮我抓抓虫,谢谢啦!
- 我写了个文件上传程序,上传到服务器指定目录?
- C#的反省
- 抓取的数据包,解析出来总是有乱码啊
- 怎样部分的修改xml文件?
- 请问假如我用richbox做一个文本,在里面有一个现在日期时间,我想在点击他的时候,这日期时间在我的焦点后显示,应该如何做呢???
- C#反射的一个问题
using System.Collections.Generic;
using System.Text;namespace ConsoleApplication1
{
public class Dialer
{ [System.Runtime.InteropServices.DllImport("wininet.dll",
EntryPoint = "InternetGetConnectedState", ExactSpelling = true,
CharSet = System.Runtime.InteropServices.CharSet.Ansi,
SetLastError = true)]
private static extern bool InternetGetConnectedState(ref Int32
lpdwFlags, Int32 dwReserved); [System.Runtime.InteropServices.DllImport("Wininet.dll",
EntryPoint = "InternetDial", ExactSpelling = true,
CharSet = System.Runtime.InteropServices.CharSet.Ansi,
SetLastError = true)]
private static extern Int32 InternetDial(IntPtr hwndParent, string
lpszConnectoid, Int32 dwFlags, ref Int32 lpdwConnection, Int32
dwReserved); [System.Runtime.InteropServices.DllImport("Wininet.dll",
EntryPoint = "InternetHangUp", ExactSpelling = true,
CharSet = System.Runtime.InteropServices.CharSet.Ansi,
SetLastError = true)]
private static extern Int32 InternetHangUp(Int32 lpdwConnection,
Int32 dwReserved); private enum Flags : int
{
//Local system uses a LAN to connect to the Internet.
INTERNET_CONNECTION_LAN = 0X2,
//Local system uses a modem to connect to the Internet.
INTERNET_CONNECTION_MODEM = 0X1,
//Local system uses a proxy server to connect to the Internet.
INTERNET_CONNECTION_PROXY = 0X4,
//Type Visual Basic 6 code here... //Local system has RAS installed.
INTERNET_RAS_INSTALLED = 0X10
} //Declaration Used For InternetDialUp.
private enum DialUpOptions : int
{
INTERNET_DIAL_UNATTENDED = 0X8000,
INTERNET_DIAL_SHOW_OFFLINE = 0X4000,
INTERNET_DIAL_FORCE_PROMPT = 0X2000
} private const int ERROR_SUCCESS = 0X0;
private const int ERROR_INVALID_PARAMETER = 0X87;
private Int32 mlConnection; public string GetConnectionType()
{
Int32 lngFlags = 0; if (InternetGetConnectedState(ref lngFlags, 0))
{
//connected.
if ((lngFlags & (int)Flags.INTERNET_CONNECTION_LAN) != 0)
{
//LAN connection.
return "LAN connection.";
}
else if ((lngFlags & (int)Flags.INTERNET_CONNECTION_MODEM) != 0)
{
//Modem connection.
return "Modem connection.";
}
else if ((lngFlags & (int)Flags.INTERNET_CONNECTION_PROXY) != 0)
{
//Proxy connection.
return "Proxy connection.";
}
return "Not connected.";
}
else
{
//not connected.
return "Not connected.";
}
}
public void Connect()
{
Int32 DResult = 0; DResult = InternetDial(IntPtr.Zero, "My Connection",
Convert.ToInt32(DialUpOptions.INTERNET_DIAL_UNATTENDED), ref
mlConnection, 0); if (DResult == ERROR_SUCCESS)
Console.WriteLine("Dial Up Successful");
else
Console.WriteLine("UnSuccessFull Error Code");
}
public void Disconnect()
{
Int32 Result = 0; if (!(mlConnection == 0))
{
Result = InternetHangUp(mlConnection, 0);
if (Result == 0)
Console.WriteLine("Hang up successful");
else
Console.WriteLine("Hang up NOT successful");
}
else
Console.WriteLine("You must dial a connection first!");
}
}}
红色的就是你拨号连接的名字。
你可以修改一下。
加一个连接字符串进去
public void Connect(string connectionStr)
{
Int32 DResult = 0; DResult = InternetDial(IntPtr.Zero, "My Connection",
Convert.ToInt32(DialUpOptions.INTERNET_DIAL_UNATTENDED), ref
mlConnection, 0);