写一个程序,其中有个模块是发邮件到指定邮箱,由于360安全卫士会对smtp进行拦截,过360拦截我又不会(据说加壳),就想到程序在运行发信功能时,可以检测360是否正在运行,如果正在运行提示用户关闭。(360杀毒,不会对smtp进行拦截提示)
常见的使用findwind,发现360安全卫士,不能检测到
CWnd* pWnd=CWnd::FindWindow(NULL,_T("360安全卫士"));
if(pWnd != NULL)
{
AfxMessageBox("Found!");
}
于是,使用直接检测360Tray.exe进程的方法。
#include"tlhelp32.h"
DWORD GetProcessidFromName(LPCTSTR name)
{
PROCESSENTRY32 pe;
DWORD id=0;
HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
pe.dwSize=sizeof(PROCESSENTRY32);
if(!Process32First(hSnapshot,&pe))
return 0;
while(1)
{
pe.dwSize=sizeof(PROCESSENTRY32);
if(Process32Next(hSnapshot,&pe)==FALSE)
break;
if(strcmp(pe.szExeFile,name)==0)
{
id=p