VC++中如何检测网络是通的还是断开的? Bool IsNetworkAlive( LPDWORD lpdwFlags // Specifies the type of network connection); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 IsNetworkAlive?我的MSDN太旧了? if(InternetGetConnectedState(NULL,NULL)) MessageBox("Connected!"); 其实第一个是Flag,可以监测连接方式,但似乎不好使,我用Modem连接他竟说是局域网??? kimryo: InternetGetConnectedState在用户的Internet选项->连接 里面设置了“不进行拨号连接” 就无法检测了,将总返回TRUE 唉,我怎么把这个给忘了!用这个吧!应该很好用哦! DWORD count,Size; RASCONN ras[20]; ras[0].dwSize=sizeof(RASCONN); Size=sizeof(ras); if(RasEnumConnections(ras,&Size,&count)==0) MessageBox("Have connect!");其中count是连接的个数(因为连接可能不止一个)。对了,别忘了#include<ras.h>,包含RASAPI32.lib. 判断是否拨号上网要用到相关的API函数。C语言中的方法是在main()主函数前加入以下头文件和库文件: #include<windows.h> #include<wininet.h>//网络编程可能需要的头文件 #pragma comment(lib, "wininet.lib")//网络编程需要的库文件然后具体调用InternetGetConnectedState这个API,以下给一段简短的判断是否拨号上网的程序:bool IsOnline(){ DWORD flags;//上网方式 InternetGetConnectedState(&flags,0); if(flags & INTERNET_CONNECTION_MODEM) /*判断是否为拨号上网*/ return true; else return false;}哈哈……当然这个API还可以判断包括局域网连接在内的其它几种方式,具体的用法查MSDN吧。 Opengl绘图区的长度距离单位和父窗口中的一样吗? 汉字怎么显示的都是乱码 求一个取余数的算法 100分--软件国际化-- 一些关于国际化的问题和思考 VC中如何用set/get返回一个private变量的值,供其它类的函数访问 vc中,像tabcontrol那样,换一个tab就出现完全不同界面的情况,怎么在Dialog资源中设计多套界面? wininet问题 请指教! 我想把子对话框中的数据在主对话框中显示,该怎么做呢 一个多线程程序的改良问题 关于全局函数 有关引用!!
InternetGetConnectedState在用户的Internet选项->连接 里面设置了“不进行拨号连接” 就无法检测了,将总返回TRUE
RASCONN ras[20];
ras[0].dwSize=sizeof(RASCONN);
Size=sizeof(ras);
if(RasEnumConnections(ras,&Size,&count)==0)
MessageBox("Have connect!");其中count是连接的个数(因为连接可能不止一个)。对了,别忘了#include<ras.h>,包含RASAPI32.lib.
#include<windows.h>
#include<wininet.h>//网络编程可能需要的头文件
#pragma comment(lib, "wininet.lib")//网络编程需要的库文件
然后具体调用InternetGetConnectedState这个API,以下给一段简短的判断是否拨号上网的程序:
bool IsOnline()
{
DWORD flags;//上网方式
InternetGetConnectedState(&flags,0);
if(flags & INTERNET_CONNECTION_MODEM) /*判断是否为拨号上网*/
return true;
else
return false;
}
哈哈……当然这个API还可以判断包括局域网连接在内的其它几种方式,具体的用法查MSDN吧。