• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            VC獲得本機(jī)網(wǎng)絡(luò)連接狀態(tài)

            1. //本機(jī)網(wǎng)絡(luò)連接類型(成功)  
            2. #define  NET_TYPE_RAS_DIAL_UP_CONNECT_NET           0x01    //上網(wǎng)類型:采用RAS撥號(hào)連接上網(wǎng)    0x01  
            3. #define  NET_TYPE_LAN_CONNECT_NET                   0x02    //上網(wǎng)類型:采用網(wǎng)卡通過(guò)局域網(wǎng)上網(wǎng) 0x02  
            4. #define  NET_TYPE_PROXY_CONNECT_NET                 0x04    //上網(wǎng)類型:使用代理服務(wù)器上網(wǎng)     0x04  
            5. #define  NET_TYPE_RAS_INSTALL                       0x10    //RAS安裝                        0x10  
            6.   
            7. //本機(jī)網(wǎng)絡(luò)連接(失敗)  
            8. #define  NET_TYPE_NO_CONNECT_NET                    0x41    //未連接到網(wǎng)絡(luò)  
            9. #define  NET_STATE_VALID_CONNECT_NOCONNECT_NET      0x40    //可以聯(lián)網(wǎng),但當(dāng)前不可用    0x40  
            10. #define  NET_STATE_MODEM_BUSY                       0x08    //調(diào)制解調(diào)器 繁忙           0x08  
            11. #define  NET_STATE_SYSTEM_OFFLINE_MODE              0x20    //系統(tǒng)脫機(jī)模式              0x20  
            12.   
            13. CheckNet()  
            14. {  
            15. if(!InternetGetConnectedState(&dwOnline, 0))  
            16.     {  
            17.         if (dwOnline & INTERNET_CONNECTION_CONFIGURED )  
            18.         {  
            19.             return NET_STATE_VALID_CONNECT_NOCONNECT_NET;  
            20.         }  
            21.         if (dwOnline & INTERNET_CONNECTION_MODEM_BUSY)  
            22.         {  
            23.             return NET_STATE_MODEM_BUSY;  
            24.         }  
            25.         if (dwOnline & INTERNET_CONNECTION_OFFLINE)  
            26.         {  
            27.             return NET_STATE_SYSTEM_OFFLINE_MODE;  
            28.         }  
            29.   
            30.         return NET_TYPE_NO_CONNECT_NET;  
            31.     }  
            32.   
            33.     if ( dwOnline& INTERNET_CONNECTION_MODEM )      //上網(wǎng)類型:采用RAS撥號(hào)連接上網(wǎng)  
            34.     {  
            35.         return  NET_TYPE_RAS_DIAL_UP_CONNECT_NET;     
            36.     }  
            37.   
            38.     else if ( dwOnline&INTERNET_CONNECTION_LAN  )  //上網(wǎng)類型:采用網(wǎng)卡通過(guò)局域網(wǎng)上網(wǎng)  
            39.     {  
            40.         return NET_TYPE_LAN_CONNECT_NET;  
            41.     }  
            42.   
            43.     else if ( dwOnline& INTERNET_CONNECTION_PROXY) //在線:代理  
            44.     {  
            45.         return NET_TYPE_PROXY_CONNECT_NET;  
            46.     }  
            47.   
            48.     else if ( dwOnline&INTERNET_CONNECTION_MODEM_BUSY ) //MODEM被其他非INTERNET連接占用  
            49.     {  
            50.         return NET_TYPE_RAS_INSTALL;  
            51.     }  
            52. }  

             

            MSDN中定義了7種參數(shù)類型,但實(shí)際中wininet.h頭文件中只對(duì)四種類型的值進(jìn)行了定義
            7種類型:
            INTERNET_CONNECTION_LAN          局域網(wǎng)
            INTERNET_CONNECTION_MODEM        撥號(hào)上網(wǎng)
            INTERNET_CONNECTION_PROXY       代理
            INTERNET_CONNECTION_MODEM_BUSY  代理被占用
            INTERNET_CONNECTION_CONFIGURED    雖然可以聯(lián)網(wǎng),但當(dāng)前不可用
            INTERNET_CONNECTION_OFFLINE     離線
            INTERNET_RAS_INSTALLED       RAS安裝

             Wininet.h頭文件中值定義:
            // Flags for InternetGetConnectedState and Ex
            #define INTERNET_CONNECTION_MODEM           0x01
            #define INTERNET_CONNECTION_LAN             0x02
            #define INTERNET_CONNECTION_PROXY           0x04
            #define INTERNET_CONNECTION_MODEM_BUSY      0x08  /* no longer used */
            #define INTERNET_RAS_INSTALLED              0x10
            #define INTERNET_CONNECTION_OFFLINE         0x20
            #define INTERNET_CONNECTION_CONFIGURED      0x40


            InternetGetConnectedState():對(duì)網(wǎng)絡(luò)狀況不能及時(shí)反應(yīng)
            IsNetworkAlive():可以及時(shí)反應(yīng)網(wǎng)絡(luò)連通情況,但是需要服務(wù)System Event Notification支持(系統(tǒng)默認(rèn)自動(dòng)啟動(dòng)該服務(wù))。使用該函數(shù),需要安裝最新的SDK(如.net的)

            微軟文檔:
            http://www.microsoft.com/china/technet/security/topics/serversecurity/tcg/tcgch07n.mspx

            System Event Notification

            System Event Notification (SENS) 服務(wù)監(jiān)視并跟蹤計(jì)算機(jī)事件(如 Windows 登錄網(wǎng)絡(luò)和電源事件)。它還將這些事件通知給 COM+ 事件系統(tǒng) 訂閱者。在 Windows XP 和 Windows Server 2003 上默認(rèn)安裝并自動(dòng)運(yùn)行此服務(wù)。

            如果 System Event Notification 服務(wù)停止,COM+ Event System 服務(wù)的訂閱者將不會(huì)接收到事件通知,并且會(huì)發(fā)生以下問(wèn)題:

            Win32 API IsNetworkAlive() 和 IsDestinationReachable() 將無(wú)法運(yùn)行。這些 API 大多在便攜式計(jì)算機(jī)的移動(dòng)應(yīng)用程序中使用。

            ISens* 接口將無(wú)法使用。SENS 登錄/注銷通知將失敗。

            SyncMgr (mobsync.exe) 將無(wú)法正常運(yùn)行。SyncMgr 依賴于連接信息,以及來(lái)自 SENS 的網(wǎng)絡(luò)連接/斷開(kāi)、登錄/注銷通知。

            COM+ EventSystem 試圖向 SENS 通知某些事件時(shí)將失敗。

            Volume Shadow Copy 服務(wù)將不能正常加載,這將導(dǎo)致 Windows 備份 API 失敗。

            1. //  
            2. #include "stdafx.h"  
            3. #include "test.h"  
            4. #include <Wininet.h>  
            5. #include <Sensapi.h>  
            6.   
            7. #ifdef _DEBUG  
            8. #define new DEBUG_NEW  
            9. #undef THIS_FILE  
            10. static char THIS_FILE[] = __FILE__;  
            11. #endif  
            12.   
            13. /////////////////////////////////////////////////////////////////////////////  
            14. // The one and only application object  
            15.   
            16. CWinApp theApp;  
            17.   
            18. using namespace std;  
            19.   
            20. void Fun_InternetGetConnectedState()  
            21. {  
            22.     
            23. //#define INTERNET_CONNECTION_MODEM           1  
            24. //#define INTERNET_CONNECTION_LAN             2  
            25. //#define INTERNET_CONNECTION_PROXY           4  
            26. //#define INTERNET_CONNECTION_MODEM_BUSY      8  
            27.     
            28. DWORD   flags;//上網(wǎng)方式   
            29. BOOL   m_bOnline=TRUE;//是否在線    
            30.   
            31. m_bOnline=InternetGetConnectedState(&flags,0);     
            32. if(m_bOnline)//在線     
            33. {     
            34.    if ((flags & INTERNET_CONNECTION_MODEM) ==INTERNET_CONNECTION_MODEM)  
            35.    {  
            36.     cout<<"在線:撥號(hào)上網(wǎng)\n";  
            37.    }  
            38.    if ((flags & INTERNET_CONNECTION_LAN) ==INTERNET_CONNECTION_LAN)  
            39.    {  
            40.     cout<<"在線:通過(guò)局域網(wǎng)\n";  
            41.    }  
            42.    if ((flags & INTERNET_CONNECTION_PROXY) ==INTERNET_CONNECTION_PROXY)  
            43.    {  
            44.     cout<<"在線:代理\n";  
            45.    }  
            46.    if ((flags & INTERNET_CONNECTION_MODEM_BUSY) ==INTERNET_CONNECTION_MODEM_BUSY)  
            47.    {  
            48.     cout<<"MODEM被其他非INTERNET連接占用\n";  
            49.    }  
            50. }  
            51. else  
            52.    cout<<"不在線\n";  
            53. }  
            54.   
            55. void Fun_IsNetworkAlive()  
            56. {  
            57.     
            58. DWORD   flags;//上網(wǎng)方式   
            59. BOOL   m_bOnline=TRUE;//是否在線    
            60.   
            61. m_bOnline=IsNetworkAlive(&flags);     
            62. if(m_bOnline)//在線     
            63. {     
            64.    if ((flags & NETWORK_ALIVE_LAN) ==NETWORK_ALIVE_LAN)  
            65.    {  
            66.     cout<<"在線:NETWORK_ALIVE_LAN\n";  
            67.    }  
            68.    if ((flags & NETWORK_ALIVE_WAN) ==NETWORK_ALIVE_WAN)  
            69.    {  
            70.     cout<<"在線:NETWORK_ALIVE_WAN\n";  
            71.    }  
            72.    if ((flags & NETWORK_ALIVE_AOL) ==NETWORK_ALIVE_AOL)  
            73.    {  
            74.     cout<<"在線:NETWORK_ALIVE_AOL\n";  
            75.    }  
            76. }  
            77. else  
            78.    cout<<"不在線\n";  
            79. }  
            80.   
            81. int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])  
            82. {  
            83. int nRetCode = 0;  
            84.   
            85. // initialize MFC and print and error on failure  
            86. if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))  
            87. {  
            88.    // TODO: change error code to suit your needs  
            89.    cerr << _T("Fatal Error: MFC initialization failed") << endl;  
            90.    nRetCode = 1;  
            91. }  
            92. else  
            93. {  
            94.    // TODO: code your application's behavior here.  
            95. //   CString strHello;  
            96. //   strHello.LoadString(IDS_HELLO);  
            97. //   cout << (LPCTSTR)strHello << endl;  
            98.    int i=0;  
            99.    while (TRUE)  
            100.    {  
            101.     cout << "請(qǐng)選擇測(cè)試的方式:\n"  
            102.      << "1. InternetGetConnectedState\n"  
            103.      << "2. IsNetworkAlive"  
            104.      << endl;  
            105.     cin >> i;  
            106.     switch(i)   
            107.     {  
            108.     case 1:  
            109.      Fun_InternetGetConnectedState();  
            110.      break;  
            111.     case 2:  
            112.      Fun_IsNetworkAlive();  
            113.      break;  
            114.     default:  
            115.      cout << "錯(cuò)誤!\n";  
            116.     }  
            117.     cout << endl;  
            118.    }  
            119. }  
            120.   
            121.   return nRetCode;  

             

            posted on 2010-12-02 09:07 wrh 閱讀(9482) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            導(dǎo)航

            <2011年8月>
            31123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910

            統(tǒng)計(jì)

            常用鏈接

            留言簿(19)

            隨筆檔案

            文章檔案

            收藏夾

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            性做久久久久久久久| 久久久婷婷五月亚洲97号色| 久久精品二区| 人妻无码久久精品| 久久夜色精品国产亚洲| 一本一道久久综合狠狠老 | 国产精品久久久久久久久| 久久精品国产99久久久| 嫩草影院久久99| 精品久久久久久久中文字幕| 深夜久久AAAAA级毛片免费看| 久久亚洲中文字幕精品一区| 人妻无码久久一区二区三区免费| 国产亚洲欧美精品久久久| 亚洲伊人久久大香线蕉苏妲己| 激情五月综合综合久久69| 亚洲欧洲久久久精品| 久久久久久亚洲AV无码专区| 久久香蕉综合色一综合色88| 日本欧美国产精品第一页久久| 久久亚洲精品中文字幕| 亚洲国产成人久久综合一 | 思思久久99热只有频精品66| 人妻久久久一区二区三区| 一本久久久久久久| 亚洲精品tv久久久久久久久久| 亚洲综合精品香蕉久久网| 色综合久久中文综合网| 免费无码国产欧美久久18| 久久91精品国产91久久小草| 欧美激情精品久久久久久| 麻豆亚洲AV永久无码精品久久| 7国产欧美日韩综合天堂中文久久久久| 久久久久久毛片免费看| 久久久久亚洲av无码专区喷水| 久久久网中文字幕| 久久精品蜜芽亚洲国产AV| 亚洲精品午夜国产va久久| 久久国产精品99久久久久久老狼| 久久久久亚洲AV无码观看| 99热成人精品免费久久|