最近一直在学习 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);

效果图:


}



Windows无限弹窗程序相关推荐

  1. Python恶搞无限弹窗程序

    最近闲着无聊,写了个简单的无限弹窗,给你们看看

  2. 游戏系列之无限弹窗游戏

    hi,hi!今天我来给大家提供一款难度为:⭐⭐⭐⭐(共5星)的游戏: 无限弹窗!!! 众所周知,无限弹窗是一个恶搞游戏,不过我也是要蹚浑水讲一下如何速成无限弹窗. 话不多说,直接上代码!!! #inc ...

  3. 去除Windows的弹窗广告

    去除Windows的弹窗广告 打开控制面板,将查看方式改成小图标,找到并点击管理工具 双击任务计划程序 点击任务计划程序库,右键将所有可禁用的任务计划设置为禁用即可

  4. 如何彻底关闭Windows10系统更新带来的天气、资讯和兴趣删除开机任务栏右下角的广告自动弹窗程序

    最近不少Windows10系统用户反应电脑右下角弹出一些关于天气.资讯和兴趣推荐类的弹窗,是系统更新后才出现的,这应该是安装了"资讯和兴趣"补丁所致. 这项功能会在Win10用户的 ...

  5. 游戏弹窗程序卸载完重启又出现,探究解决办法中发现与360浏览器有关

    前几天我写了篇博文<流氓软件卸载了又偷偷冒出来,dllhost.exe暗藏安装玄机>,有朋友留言求助,反映游戏弹窗程序卸载之后重启系统又出现,按照我那片博文的方法在注册表.系统服务.计划任 ...

  6. Windows平台下程序打包流程

    Windows平台下程序打包流程 1.所有测试完成之后.程序release编译完成 2.依赖库打包 执行deploy.bat 脚本打包最新的程序以及依赖库 3.可执行程序打包 打开打包工程文件.evb ...

  7. Windows下Qt程序打包

    Windows下Qt程序打包 将windeployqt.exe 目录添加到系统环境变量 windeployqt.exe目录如下: 命令行打包 1.打开命令行 2.执行打包命令 windeployqt ...

  8. Windows Azure Platform Introduction (6) Windows Azure应用程序运行环境

    <Windows Azure Platform 系列文章目录> Windows Azure应用程序运行环境 Windows Azure云计算平台是提供PaaS(平台即服务)和IaaS(基础 ...

  9. Windows Phone 应用程序生命周期

    下图演示了 Windows Phone 应用程序的生命周期.在该图中,圆圈表示应用程序的状态.矩形显示应用程序应管理其状态的应用程序级别或页面级别的事件. Launching 事件 Launching ...

最新文章

  1. php i 获取不到值,thinkphp I方法讀取不到值~~~
  2. Spring Cloud 学习笔记(四)-Spring Cloud Hystrix
  3. UVA - 10615 Rooks
  4. CentOS 使用 Docker 安装 Sentry
  5. Maven配置_01
  6. 凸包 poj 1113
  7. linux vi 块操作、多窗口
  8. haproxy 基础知识
  9. 设计文档?你还不会写设计文档?设计文档是什么?
  10. 关于数据库中存储密码的加密
  11. 我写过的软件之TSE-工作流程和实现
  12. 使用 Travis 将 GitHub 文件上传传至服务器
  13. lua搭建ui_[专栏作家] Lua写UI的一些使用心得
  14. [Python爬虫] 一、爬虫原理之HTTP和HTTPS的请求与响应
  15. lunch time food
  16. VBA Rnd()函数不正确,应使用什么代替
  17. SAP770系统FI模块配置(配置会计科目表)
  18. linux怎么安装echo命令,如何在Linux上使用Echo命令 | MOS86
  19. PowerDesigner常见使用
  20. 宜昌开启新型智慧城市3.0 构建一体化建设新模式

热门文章

  1. Qt使用qsqlite数据库开发时,没有问题,但是发布后出现打不开、报错现象
  2. 你对C++头文件了解多少?——盘点C++的常用头文件
  3. 063 邪恶八进制域名收集
  4. 【CSRF02】跨站请求伪造——DVWA靶场实操(含CSRF+XSS协同攻击实验)
  5. .NET开发的大型网站列表、各大公司.NET职位精选,C#王者归来
  6. fiddler4抓包修改Request,断点设置
  7. MATLAB/Simulink搭建电动助力转向模型
  8. Ubuntu中安装gcc和g++
  9. Java算法大全_java贪心算法几个经典例子
  10. 密钥创建及SecureCRT\Putty\XShell使用密钥登陆虚拟机