吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4861|回复: 52
收起左侧

[C&C++ 原创] 完整版的鼠标连点器(修改版)

  [复制链接]
seeyou_shj 发表于 2023-11-6 13:40
本帖最后由 seeyou_shj 于 2023-11-7 13:24 编辑

上次发的鼠标连点器实现源码,利用Sleep函数延时。根据  TinaZerotwo  的说法,Sleep()函数来等待按键事件,这会导致线程被阻塞,无法响应其他事件。更好的方式是使用消息循环或事件驱动的机制来监听键盘事件。于是我修改了一下,利用系统自带的timer实现定时触发。因为timer需要有界面支持,所以自己做了一个简单的界面。

源码和可执行文件都放在打包文件里,可以自行编译,也可以自行修改以实现自己的目的。

源码也贴在这里:

[C++] 纯文本查看 复制代码
#include <windows.h>
#include <iostream>
#include <stdio.h>

using namespace std;

#define IDT_TIMER1 1

LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM ) ;

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow )
{
        static TCHAR szAppName[] = TEXT( "demo" ) ;
        HWND        hwnd ;
        MSG            msg ;
        WNDCLASS    wndclass ;

        wndclass.lpfnWndProc    = WndProc ;
        wndclass.style            = CS_HREDRAW | CS_VREDRAW ;
        wndclass.hInstance        = hInstance ;
        wndclass.cbClsExtra        = 0 ;
        wndclass.cbWndExtra        = 0 ;
        wndclass.hbrBackground    = (HBRUSH) GetStockObject(WHITE_BRUSH) ;
        wndclass.hCursor        = LoadCursor( NULL, IDC_ARROW ) ;
        wndclass.hIcon            = LoadIcon( NULL, IDI_APPLICATION ) ;
        wndclass.lpszClassName    = szAppName ;
        wndclass.lpszMenuName    = NULL ;
        
        if( !RegisterClass(&wndclass) )
        {
                MessageBox( NULL, TEXT("无法注册窗口类!"), TEXT("错误"), MB_OK | MB_ICONERROR ) ;
                return 0 ;
        }

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

        ShowWindow( hwnd, iCmdShow ) ;
        UpdateWindow( hwnd ) ;

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

        return msg.wParam ;
}

LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
{
  static HWND btn,btn2;
  static POINT p;
  static HWND hdc;

        switch( message )
        {
        case WM_CREATE:
    btn = CreateWindow( TEXT("button"), TEXT("开始点击"),
                                WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON,
                                20, 20, 120, 20,
                                hwnd, (HMENU)3, ((LPCREATESTRUCT) lParam) -> hInstance, NULL ) ;
                return 0 ;
        case WM_COMMAND:
                switch(LOWORD(wParam))
                {
                case 3:
                        switch(HIWORD(wParam))
                        {
                                case BN_CLICKED:
          MessageBox( NULL, TEXT("将鼠标置于需要连续点击的位置,按下UP键开始鼠标连续点击。DOWN键结束本次点击。"), TEXT("提示信息!"), MB_OK | MB_ICONERROR ) ;
          while(!(GetAsyncKeyState(VK_UP) & 0x8000)){
            Sleep(20);
          }
          GetCursorPos(&p);
          hdc = WindowFromPoint(p);
          ScreenToClient(hdc, &p);
          SetTimer(hwnd,IDT_TIMER1,10,(TIMERPROC)NULL);
                                        break ;
                        }
                        break ;
                }
                return 0 ;
        case WM_TIMER:
                switch (wParam)
                {
                        case IDT_TIMER1:
                                SendMessage(hdc,WM_LBUTTONDOWN,MK_LBUTTON,MAKELONG(p.x,p.y));
        SendMessage(hdc,WM_LBUTTONUP,MK_LBUTTON,MAKELONG(p.x,p.y));
        if(GetAsyncKeyState(VK_DOWN) & 0x8000){
          KillTimer(hwnd,IDT_TIMER1);
        }
                                break;
                }
                return 0 ;
        case WM_DESTROY:
                KillTimer(hwnd,IDT_TIMER1);
                PostQuitMessage(0) ;
                return 0 ;
        }

        return DefWindowProc( hwnd, message, wParam, lParam ) ;
}

click.7z

355.44 KB, 下载次数: 296, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 8吾爱币 +13 热心值 +8 收起 理由
wjlqz + 1 + 1 谢谢@Thanks!
microbot + 1 热心回复!
luozi1653 + 1 + 1 我很赞同!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
策士 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
gun008 + 1 + 1 谢谢Thanks!
liuyuanchen + 1 + 1 谢谢@Thanks!
是谁呀 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

苏紫方璇 发表于 2023-11-7 00:58
代码插入可以看这个帖子,此贴已帮您修改了
【公告】发帖代码插入以及添加链接教程(有福利)
https://www.52pojie.cn/thread-713042-1-1.html
(出处: 吾爱破解论坛)
 楼主| seeyou_shj 发表于 2023-11-7 10:48

应该是使用了GUI界面的原因,缺少什么dll请告知我,我一起打包。你也可以自行编译,编译方法:

g++ click.cpp -lgdi32

我用的mingw编译的。
pxhzai 发表于 2023-11-6 13:45
460906606 发表于 2023-11-6 13:57
谢谢分享
forget5300 发表于 2023-11-6 14:09
感谢分享
xingdonga 发表于 2023-11-6 14:34
下载了,支持
skyua 发表于 2023-11-6 14:39
感谢分享
dblkings 发表于 2023-11-6 14:59

感谢分享
f122741 发表于 2023-11-6 15:00
多谢分享
学习大安 发表于 2023-11-6 16:02
下载了 有成品吗
auth98 发表于 2023-11-6 16:11
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-15 05:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表