常常聽(tīng)說(shuō)有病毒關(guān)閉殺毒軟件,是枚舉窗口標(biāo)題來(lái)實(shí)現(xiàn)的,那么內(nèi)幕是什么呢?
其實(shí)只需要數(shù)10行代碼就可以了。
VC++6.0建立Win32 APPlication,復(fù)制下面的代碼...
#include
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam);
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
EnumWindows(EnumWindowsProc, 0); //枚舉所有窗口
return 0;
}
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) //滿足指定條件,則關(guān)閉窗口
{
char wtitle[512];
GetWindowText(hwnd, wtitle, sizeof(wtitle));
if (strstr(wtitle , "記事本")) //窗口標(biāo)題含有記事本
{
::SendMessage(hwnd, WM_CLOSE, 0, 0);
}
return (true); //不要忘了
}
病毒當(dāng)然比這個(gè)多點(diǎn)代碼,它先定義一個(gè)數(shù)組,然后再弄個(gè)判斷函數(shù),判斷窗口標(biāo)題是否和這個(gè)數(shù)組里面的匹配,如果有一個(gè)匹配則返回真否則返回假,然后如果真,則關(guān)閉
其實(shí)只需要數(shù)10行代碼就可以了。
VC++6.0建立Win32 APPlication,復(fù)制下面的代碼...
#include
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam);
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
EnumWindows(EnumWindowsProc, 0); //枚舉所有窗口
return 0;
}
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) //滿足指定條件,則關(guān)閉窗口
{
char wtitle[512];
GetWindowText(hwnd, wtitle, sizeof(wtitle));
if (strstr(wtitle , "記事本")) //窗口標(biāo)題含有記事本
{
::SendMessage(hwnd, WM_CLOSE, 0, 0);
}
return (true); //不要忘了
}
病毒當(dāng)然比這個(gè)多點(diǎn)代碼,它先定義一個(gè)數(shù)組,然后再弄個(gè)判斷函數(shù),判斷窗口標(biāo)題是否和這個(gè)數(shù)組里面的匹配,如果有一個(gè)匹配則返回真否則返回假,然后如果真,則關(guān)閉