读书人

怎么实现检测网络连接成功后自动启动程

发布时间: 2012-01-21 21:31:43 作者: rapoo

如何实现检测网络连接成功后自动启动程序?
现在很多程序都可以实现开机启动程序。但是怎么实现网络连接后才自动启动程序呢?
我用下面的代码只能实现开机启动啊?
DWORD flags;//上网方式
BOOL bIsConnect;
bIsConnect=InternetGetConnectedState(&flags,0); //检测连接状态
if(!bIsConnect)
{

return FALSE;
}
else
{
this->SetAutoRun( );
}
//开机自动运行................................................

void CSMServerApp::SetAutoRun( void )
{
CString name;

::GetModuleFileName( NULL , name.GetBufferSetLength( MAX_PATH ) , MAX_PATH );

name.ReleaseBuffer( );

HKEY key;

::RegOpenKey( HKEY_LOCAL_MACHINE , "Software\\Microsoft\\Windows\\CurrentVersion\\Run" , &key );

::RegSetValueEx( key , "EV-Meeting" , 0 , REG_SZ , ( const unsigned char * )( const char * )name , name.GetLength( ) );

::RegCloseKey( key );

}
请教高手指教。谢谢!!

[解决办法]
加个定时器,判别网络,网络不启动则不调用界面,不需要退出。
[解决办法]
の 你得时刻去监视网络是否连接!
要么:你开机启动一个进程时刻去监视网络是否连接、连接之后再启动你目标进程
或者:弄个远程注入dll寄宿在expleror.exe里 去监视网络是否连接 再启动你的目标进程
本人愚见 飘过
[解决办法]
可以这样搞,自己写两个程序,一个程序自启动检查网络 另一个程序 当作资源,判断合适的条件下,释放资源,并且运行程序


理论上可以

看你怎么写了
[解决办法]
微软提供了一下API来检测网络各种状态:

1. IsNetworkAlive()
2. RasEnumConnections()
3. InternetGetConnectedState()
4. InternetCheckConnection()
5. IsDestinationReachable()


但是很不幸,这些API在特定环境下,都存在可靠性问题.

如果要得到可靠的结果,还是自己判断.方法有:

1.PING
2.DNS 解析请求.

上面两个方案也有现成的API可用,只是要自己选择判断对象.

读书人网 >VC/MFC

热点推荐