网络编程中很常见的问题。 首先检测用户是否在线,如果不在线,则弹出Windows的拨号连接对话框。这是很常见的功能,请问该如何实现?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我对你的问题不懂,不过我知道一个笨办法可以实现。你可以不停的读取本机 IP (这个例子网上很多,到处都有),如果 IP 不是合法 IP ,就可以判断你现在断线了,然后调用拨号程序开始拨号。或者你不停的尝试了解某一个服务器(比如新郎),如果连接不上,则判断是断线了。 首先检测用户是否在线------------------------------------------------------------------void CIsOnlineDlg::IsOnline() { // TODO: Add your control notification handler code here BOOL m_bOnline = FALSE; // Try connecting internet CString strErrorMsg(_T("Connect failure")); DWORD dwFlags; if(InternetGetConnectedState(&dwFlags, 0)) { if((dwFlags & INTERNET_CONNECTION_LAN) || (dwFlags & INTERNET_CONNECTION_MODEM)) { // Connect failure m_bOnline=FALSE; AfxMessageBox(strErrorMsg, MB_OK | MB_ICONERROR); return FALSE; } // Connect success m_bOnline=TRUE; } else { // Connect failure AfxMessageBox(strErrorMsg, MB_OK | MB_ICONERROR); m_bOnline=FALSE; return FALSE; } } 如果不在线,则弹出Windows的拨号连接对话框。-----------------------------------------------RasDialDlg(NULL, szRasEntryName, NULL, lpInfo); CDhtmlDialog无法把回车等键盘消息传给网页 如何挂起shell启动的程序? dll的难题 迷茫啊!撒分! 运行出错!高手指点 刚装的新电脑,要做VC开发驱动程序,多媒体等东西,请问哪儿有VC及相关下载?包括MSDN 我要做一个hpj帮助(不是chm文件的帮助),怎么做? 郁闷 link出错!! 如何使vc程序脱离vc环境独立运行? 控制MainFrame的大小 如何定义一个枚举类型?
你可以不停的读取本机 IP (这个例子网上很多,到处都有),如果 IP 不是合法 IP ,就可以判断你现在断线了,然后调用拨号程序开始拨号。
或者你不停的尝试了解某一个服务器(比如新郎),如果连接不上,则判断是断线了。
------------------------------------------------------------------
void CIsOnlineDlg::IsOnline()
{
// TODO: Add your control notification handler code here
BOOL m_bOnline = FALSE;
// Try connecting internet
CString strErrorMsg(_T("Connect failure"));
DWORD dwFlags;
if(InternetGetConnectedState(&dwFlags, 0))
{
if((dwFlags & INTERNET_CONNECTION_LAN) ||
(dwFlags & INTERNET_CONNECTION_MODEM))
{
// Connect failure
m_bOnline=FALSE;
AfxMessageBox(strErrorMsg, MB_OK | MB_ICONERROR);
return FALSE;
}
// Connect success
m_bOnline=TRUE;
}
else
{
// Connect failure
AfxMessageBox(strErrorMsg, MB_OK | MB_ICONERROR);
m_bOnline=FALSE;
return FALSE;
}
}
-----------------------------------------------
RasDialDlg(NULL, szRasEntryName, NULL, lpInfo);