吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6559|回复: 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, 下载次数: 379, 下载积分: 吾爱币 -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
3#
460906606 发表于 2023-11-6 13:57
谢谢分享
4#
forget5300 发表于 2023-11-6 14:09
感谢分享
5#
xingdonga 发表于 2023-11-6 14:34
下载了,支持
6#
skyua 发表于 2023-11-6 14:39
感谢分享
7#
dblkings 发表于 2023-11-6 14:59

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

本版积分规则

返回列表

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

GMT+8, 2024-11-24 16:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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