|
编程关闭防火墙,支持Win7以上的32位及64位系统
- #include <windows.h>
- #include <stdio.h>
- #include <netfw.h>
- // Forward declarations
- HRESULT WFCOMInitialize(INetFwPolicy2** ppNetFwPolicy2);
- int __cdecl main()
- {
- HRESULT hrComInit = S_OK;
- HRESULT hr = S_OK;
- INetFwPolicy2 *pNetFwPolicy2 = NULL;
- // Initialize COM.
- hrComInit = CoInitializeEx(
- 0,
- COINIT_APARTMENTTHREADED
- );
- // Ignore RPC_E_CHANGED_MODE; this just means that COM has already been
- // initialized with a different mode. Since we don't care what the mode is,
- // we'll just use the existing mode.
- if (hrComInit != RPC_E_CHANGED_MODE)
- {
- if (FAILED(hrComInit))
- {
- printf("CoInitializeEx failed: 0x%08lx\n", hrComInit);
- goto Cleanup;
- }
- }
- // Retrieve INetFwPolicy2
- hr = WFCOMInitialize(&pNetFwPolicy2);
- if (FAILED(hr))
- {
- goto Cleanup;
- }
- // Disable Windows Firewall for the Domain profile
- hr = pNetFwPolicy2->put_FirewallEnabled(NET_FW_PROFILE2_DOMAIN, FALSE);
- if (FAILED(hr))
- {
- printf("put_FirewallEnabled failed for Domain: 0x%08lx\n", hr);
- goto Cleanup;
- }
- // Disable Windows Firewall for the Private profile
- hr = pNetFwPolicy2->put_FirewallEnabled(NET_FW_PROFILE2_PRIVATE, FALSE);
- if (FAILED(hr))
- {
- printf("put_FirewallEnabled failed for Private: 0x%08lx\n", hr);
- goto Cleanup;
- }
- // Disable Windows Firewall for the Public profile
- hr = pNetFwPolicy2->put_FirewallEnabled(NET_FW_PROFILE2_PUBLIC, FALSE);
- if (FAILED(hr))
- {
- printf("put_FirewallEnabled failed for Public: 0x%08lx\n", hr);
- goto Cleanup;
- }
- Cleanup:
- // Release INetFwPolicy2
- if (pNetFwPolicy2 != NULL)
- {
- pNetFwPolicy2->Release();
- }
- // Uninitialize COM.
- if (SUCCEEDED(hrComInit))
- {
- CoUninitialize();
- }
-
- return 0;
- }
- // Instantiate INetFwPolicy2
- HRESULT WFCOMInitialize(INetFwPolicy2** ppNetFwPolicy2)
- {
- HRESULT hr = S_OK;
- hr = CoCreateInstance(
- __uuidof(NetFwPolicy2),
- NULL,
- CLSCTX_INPROC_SERVER,
- __uuidof(INetFwPolicy2),
- (void**)ppNetFwPolicy2);
- if (FAILED(hr))
- {
- printf("CoCreateInstance for INetFwPolicy2 failed: 0x%08lx\n", hr);
- goto Cleanup;
- }
- Cleanup:
- return hr;
- }
复制代码
交流群1:177822108
交流群2:177822398 |
|