• <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>
            asm, c, c++ are my all
            -- Core In Computer
            posts - 139,  comments - 123,  trackbacks - 0

            [轉(zhuǎn)]如何讓你的程序安全通過windows防火墻
            http://www.shnenglu.com/davyy/archive/2006/07/24/10410.html

            大家開發(fā)網(wǎng)絡(luò)程序,經(jīng)常要連接其他主機,如果在xp上運行,一定會提示你,只有選擇解除阻止才能
            實現(xiàn)正常的網(wǎng)絡(luò)連接.那么有沒有辦法在防火墻的例外列表里面通過編程的方式加入自己的程序呢?

            當(dāng)然有了,不然就不要介紹了:)

            xp的系統(tǒng)目錄下面有個hnetcfg.dll就是這個編程接口,頭文件是netfw.h,初始化代碼如下:
            INetFwProfile* m_pFireWallProfile=NULL;

            ??? HRESULT hr? =? S_FALSE;
            ??? INetFwMgr *? fwMgr? =? NULL;
            ??? INetFwPolicy *? fwPolicy? =? NULL;

            ??? FW_ERROR_CODE ret? =? FW_NOERROR;
            ???? try
            ?????? {
            ???????? if ( m_pFireWallProfile )
            ???????????? throw? FW_ERR_INITIALIZED;

            ???????? //? Create an instance of the firewall settings manager.
            ???????? hr? =? CoCreateInstance( __uuidof(NetFwMgr), NULL, CLSCTX_INPROC_SERVER, __uuidof( INetFwMgr), ( void ** ) & fwMgr );

            ???????? if ( FAILED( hr ))
            ???????????? throw? FW_ERR_CREATE_SETTING_MANAGER;

            ???????? //? Retrieve the local firewall policy.
            ???????? hr? =? fwMgr -> get_LocalPolicy(? & fwPolicy );
            ???????? if ( FAILED( hr ))
            ???????????? throw? FW_ERR_LOCAL_POLICY;

            ???????? //? Retrieve the firewall profile currently in effect
            ???????? hr? =? fwPolicy -> get_CurrentProfile(? & m_pFireWallProfile );
            ???????? if ( FAILED( hr ))
            ???????????? throw? FW_ERR_PROFILE;

            ??? }
            ???? catch ( FW_ERROR_CODE nError)
            ????? {
            ??????? ret? =? nError;
            ??? }

            ???? if ( fwPolicy )
            ??????? fwPolicy -> Release();
            ???? if ( fwMgr )
            ??????? fwMgr -> Release();

            ???? return? ret; 將程序名稱加入例外列表:
            WinXPSP2FireWall::AddApplication( const wchar_t* lpszProcessImageFileName, const wchar_t* lpszRegisterName )
            {
            ??? FW_ERROR_CODE ret = FW_NOERROR;
            ??? HRESULT hr;
            ??? BOOL bAppEnable;
            ??? BSTR bstrProcessImageFileName = NULL;
            ??? BSTR bstrRegisterName = NULL;
            ??? INetFwAuthorizedApplication* pFWApp = NULL;
            ??? INetFwAuthorizedApplications* pFWApps = NULL;

            ??? try
            ??? {
            ??????? if( m_pFireWallProfile == NULL )
            ??????????? throw FW_ERR_INITIALIZED;
            ??????? if( lpszProcessImageFileName == NULL || lpszRegisterName? == NULL )
            ??????????? throw FW_ERR_INVALID_ARG;

            ??????? // First of all, check the application is already authorized;
            ??????? FW_ERROR_CODE? nError = this->IsAppEnabled( lpszProcessImageFileName, bAppEnable );
            ??????? if( nError != FW_NOERROR )
            ??????????? throw nError;

            ??????? // Only add the application if it isn't authorized
            ??????? if( bAppEnable == FALSE )
            ??????? {
            ??????????? // Retrieve the authorized application collection
            ??????????? hr = m_pFireWallProfile->get_AuthorizedApplications( &pFWApps );
            ??????????? if( FAILED( hr ))
            ??????????????? throw FW_ERR_AUTH_APPLICATIONS;

            ??????????? // Create an instance of an authorized application
            ??????????? hr = CoCreateInstance( __uuidof(NetFwAuthorizedApplication), NULL, CLSCTX_INPROC_SERVER, __uuidof(INetFwAuthorizedApplication), (void**)&pFWApp);
            ??????????? if( FAILED( hr ))
            ??????????????? throw FW_ERR_CREATE_APP_INSTANCE;

            ??????????? // Allocate a BSTR for the Process Image FileName
            ??????????? bstrProcessImageFileName = SysAllocString( lpszProcessImageFileName );
            ??????????? if( SysStringLen( bstrProcessImageFileName ) == 0)
            ??????????????? throw FW_ERR_SYS_ALLOC_STRING;

            ??????????? // Set the process image file name
            ??????????? hr = pFWApp->put_ProcessImageFileName( bstrProcessImageFileName );
            ??????????? if( FAILED( hr ) )
            ??????????????? throw FW_ERR_PUT_PROCESS_IMAGE_NAME;

            ??????????? // Allocate a BSTR for register name
            ??????????? bstrRegisterName = SysAllocString( lpszRegisterName );
            ??????????? if( SysStringLen( bstrRegisterName ) == 0)
            ??????????????? throw FW_ERR_SYS_ALLOC_STRING;
            ??????????? // Set a registered name of the process
            ??????????? hr = pFWApp->put_Name( bstrRegisterName );
            ??????????? if( FAILED( hr ))
            ??????????????? throw FW_ERR_PUT_REGISTER_NAME;

            ??????????? // Add the application to the collection
            ??????????? hr = pFWApps->Add( pFWApp );
            ??????????? if( FAILED( hr ))
            ??????????????? throw FW_ERR_ADD_TO_COLLECTION;
            ??????? }
            ??? }
            ??? catch( FW_ERROR_CODE nError )
            ??? {
            ??????? ret = nError;
            ??? }

            ??? SysFreeString( bstrProcessImageFileName );
            ??? SysFreeString( bstrRegisterName );

            ??? if( pFWApp )
            ??????? pFWApp->Release();
            ??? if( pFWApps )
            ??????? pFWApps->Release();

            ??? return ret;
            }

            posted on 2006-07-25 00:22 Jerry Cat 閱讀(522) 評論(0)  編輯 收藏 引用

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



            <2006年7月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            常用鏈接

            留言簿(7)

            隨筆檔案

            最新隨筆

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            中文字幕精品久久| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 久久国产精品波多野结衣AV| 久久精品国产91久久综合麻豆自制 | 久久国产精品无码一区二区三区| 国产精品9999久久久久| 久久人人爽人人爽人人片AV东京热 | 一本色道久久综合狠狠躁篇| 国产精品久久久亚洲| 久久久久亚洲精品日久生情 | 久久九九兔免费精品6| 久久精品国产欧美日韩99热| 亚洲国产精品一区二区久久| 亚洲国产美女精品久久久久∴| 久久国产亚洲精品| 综合久久精品色| 99精品久久久久久久婷婷| 中文字幕日本人妻久久久免费| 亚洲午夜无码AV毛片久久| 亚洲国产成人精品女人久久久 | 久久九九久精品国产| 香蕉久久久久久狠狠色| 久久国产欧美日韩精品免费| 中文字幕日本人妻久久久免费| 69久久精品无码一区二区| 精品久久久久久久中文字幕| 色综合久久夜色精品国产| 久久精品无码专区免费青青| 99久久99久久精品国产片果冻| 国产成人精品综合久久久| 久久久久久国产a免费观看黄色大片 | 国产精品欧美亚洲韩国日本久久| 91麻豆精品国产91久久久久久| 女同久久| 亚洲精品97久久中文字幕无码| 久久99国产综合精品免费| 久久亚洲sm情趣捆绑调教| 亚洲伊人久久成综合人影院| 国产精品久久久久久久| 奇米影视7777久久精品人人爽| 久久精品中文字幕一区|