首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-01-21 
如何实现检测网络连接成功后自动启动程序?现在很多程序都可以实现开机启动程序。但是怎么实现网络连接后才

如何实现检测网络连接成功后自动启动程序?
现在很多程序都可以实现开机启动程序。但是怎么实现网络连接后才自动启动程序呢?
我用下面的代码只能实现开机启动啊?
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可用,只是要自己选择判断对象.

热点排行