用GetInternetConnectedState()函数,具体参见MSDN中关于InternetAPI部分。使用时须连接到winint.lib(具体我记不得了)不过上次我用VC遍了一个上网记费的工具,使用这个函数好象在Win98下不起作用,在Win2000下正常。不知为何,烦请大虾指点迷津。
解决方案 »
- 怎么美化visual studio 2005 对话框
- VC程序运行在win2003下报错
- 微软并没有放弃MFC 在vs2008中MFC将要做很大的改进。
- 晕。。。请教这句代码什么意思???
- 关于CFormView的问题,请大家帮忙,谢谢
- 帮帮忙 急急急
- 如何从cdialogbar中派生子类??急!
- activex控件无法安装
- 如何用vc合并有依赖关系的静态链接库
- 请问如何在vc中使用ActiveX控件操作SQL7.0中的数据,HELP?
- 如何用CComQIPtr来更改WebBrowse中的Radio的check与否?==>
- char msg[1000]都显示成了“烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫....”,谁能帮我改正?让它正常输出?
Public Function IsConnected() As Boolean
Dim hKey As Long, lpSubKey As String, phkResult As Long, lpValueName As String, lpReserved As Long, lpType As Long, lpData As Long, lpcbData As Long, hResult As Long
IsConnected = False
lpSubKey = "System\CurrentControlSet\Services\RemoteAccess"
hKey = RegOpenKey(HKEY_LOCAL_MACHINE, lpSubKey, phkResult)If hKey = ERROR_SUCCESS Then
hKey = phkResult
lpValueName = "Remote Connection"
lpReserved = APINULL
lpType = APINULL
lpData = APINULL
lpcbData = APINULL
hResult = RegQueryValueEx(hKey, lpValueName, lpReserved, lpType, ByVal lpData, lpcbData)
lpcbData = Len(lpData)
hResult = RegQueryValueEx(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData)
If hResult = ERROR_SUCCESS Then
If lpData = 0 Then
IsConnected = False
Else
IsConnected = True
End If
End If
End If
End Function
RasGetEntryDialParams()
...
好像"System\CurrentControlSet\Services\RemoteAccess"这个键下面根本没有"Remote Connection"这个值名啊???怎么RegQueryValueEx?
一般的方法似乎应该是:用RasEnumConnections枚举所有Ras连接,如果至少有一个连接再用RasGetConnectStatus得到连接状态,来判断连接是否有效吧?实现实时检测当然用定时器。
这是我近日看Msdn的结论,定有断章取义之处,还有人指点吗?还有,大家说的有问题的几个API是指这几个Ras函数么? 待我写出IsConnected()函数试试.......