首先我们认识几个函数以及填法

HDC GetDC(HWND hWnd);

BOOL GetCursorPos(LPPOINT lpPoint);

BOOL DrawIcon(HDC hDC,int X,int Y,HICON hIcon)

HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,SIZE_T dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags,LPDWORD lpThreadId)

BOOL DrawIconEx(HDC hdc,int xLeft,int yTop,HICON hIcon,int cxWidth,int cyWidth,UNIT istepIfAniCur,HBRUSH hbrFlickerFreeDraw,UNIT diFlags)


具体填法

HDC hdc = GetDC(0);

POINT point;(为下面做准备)

GetCursorPos(&point);

DWORD WINAPI DrawError(LPVOID lpParameter){}

CreateThread(NULL,NULL,DeawError,NULL,NULL,NULL);

DrawIconEx(hdc,rand() % GetSystemMetrics(0),rand() % GetSystemMetrics(1),LoadIcon(NULL,IDI_ERROR),rand() % GetSystemMetrics(0),NULL,NULL,DI_NORMAL);


random函数

HCRYPTPROV prov;

int random() {

if (prov == NULL)

if (!CryptAcquireContext(&prov, NULL, NULL, PROV_RSA_FULL, CRYPT_SILENT | CRYPT_VERIFYCONTEXT))

ExitProcess(1);

int out;

CryptGenRandom(prov, sizeof(out), (BYTE*)(&out));

return out & 0x7fffffff;

}

单击复制完整代码