基于Visual C++2010与Windows 7Sdk开发与win7安全中心通信(类似卡巴斯基提示已经关闭,需要更新等等)

WIndows 7安全中心主要为用户的信息安全而服务,会提示杀毒软件尚未安装,提示杀毒软件已经关闭,提示杀毒软件需要更新等等,

我们如何向WIndows 7安全中心发送消息呢,发送消息以后,让WIndows 7安全中心显示我们的程序相关的信息呢,如何检测安全中心的信息呢,

下列代码在Windows7平台调试成功,具体代码见注释:

#include "stdafx.h"
#include "wscapi.h"//win7安全中心头文件

DWORD WINAPI OnSecurityCenterHealthChange(LPVOID lpParameter)
{
    HRESULT hr = S_OK;
    WSC_SECURITY_PROVIDER_HEALTH health = WSC_SECURITY_PROVIDER_HEALTH_GOOD;

    if (SUCCEEDED(hr))
    {
        hr = WscGetSecurityProviderHealth(WSC_SECURITY_PROVIDER_INTERNET_SETTINGS, &health);
        if (SUCCEEDED(hr))
        {
            wprintf(L"浏览器设置安全参数 %s, 安全中心服务参数 %s/n", 
                    (WSC_SECURITY_PROVIDER_HEALTH_GOOD == health)?L"OK":L"Not OK",
                    (S_FALSE == hr)?L"Not Running":L"Running");
        }
    }
    if (SUCCEEDED(hr))
    {
        hr = WscGetSecurityProviderHealth(WSC_SECURITY_PROVIDER_ALL, &health);
        if (SUCCEEDED(hr))
        {
            wprintf(L"电脑安全程度为 %s, 安全中心服务安全度为 %s/n", 
                    (WSC_SECURITY_PROVIDER_HEALTH_GOOD == health)?L"OK":L"Not OK",
                    (S_FALSE == hr)?L"Not Running":L"Running");
        }
    }
    if (FAILED(hr))
    {
        wprintf(L"获取电脑安全中心参数失败: Error: 0x%X/n", hr);
    }
    return 0;
}

// 互联网监控区域设置和所有安全中心作为一个整体保护Windows7的安全。
int _tmain(int argc, _TCHAR* argv[])
{
    HANDLE hWscCallbackRegistration = NULL;
    HRESULT hr = S_OK;
    
    if (SUCCEEDED(hr))
    {
        hr = WscRegisterForChanges(NULL, &hWscCallbackRegistration, OnSecurityCenterHealthChange, NULL);
        if (FAILED(hr))
        {
            wprintf(L"注册安全中心更改通知失败: Error 0x%X/n", hr);
        }
    }
 
    if (SUCCEEDED(hr))
    {
        wprintf(L"监测安全中心的安全变化。按ENTER键停止.../n");
        getchar();
    }

    if (SUCCEEDED(hr))
    {
        hr = WscUnRegisterChanges(hWscCallbackRegistration);
        if (FAILED(hr))
        {
            wprintf(L"解除注册安全中心更改通知失败: Error 0x%X/n", hr);
        }
    }

    return 0;
}

欢迎技术交流!

本文作者专著《Visual C++2010开发权威指南》即将推出,敬请关注,Visual C++2010最近技术,Windows7开发最新技术!


原文链接: http://blog.csdn.net/yincheng01/article/details/5406121

你可能感兴趣的:(基于Visual C++2010与Windows 7Sdk开发与win7安全中心通信(类似卡巴斯基提示已经关闭,需要更新等等))