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开发最新技术!