WIndows 7安全中心主要为用户的信息安全而服务,会提示杀毒软件尚未安装,提示杀毒软件已经关闭,提示杀毒软件需要更新等等,
我们如何向WIndows 7安全中心发送消息呢,发送消息以后,让WIndows 7安全中心显示我们的程序相关的信息呢,如何检测安全中心的信息呢,
下列代码在Windows7平台调试成功,具体代码见注释:
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开发最新技术!