zoukankan      html  css  js  c++  java
  • 鼠标连点器

    ////转载于:最强的琛 CSDN    
    //https://blog.csdn.net/liuzich/article/details/109009284#comments_13426280
    ///////23333修复了0ms时无法ESC结束的BUG

    #include <bits/stdc++.h>
    #include <windows.h>
    #include <conio.h>
    #define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
    using namespace std;
    void L_Down() {
        INPUT  Input = { 0 };
        Input.type = INPUT_MOUSE;
        Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
        SendInput(1, &Input, sizeof(INPUT));
    }
    void L_Up() {
        INPUT  Input = { 0 };
        Input.type = INPUT_MOUSE;
        Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
        SendInput(1, &Input, sizeof(INPUT));
    
    }
    void R_Down() {
        INPUT  Input = { 0 };
        Input.type = INPUT_MOUSE;
        Input.mi.dwFlags = MOUSEEVENTF_RIGHTDOWN;
        SendInput(1, &Input, sizeof(INPUT));
    }
    void R_Up() {
        INPUT  Input = { 0 };
        Input.type = INPUT_MOUSE;
        Input.mi.dwFlags = MOUSEEVENTF_RIGHTUP;
        SendInput(1, &Input, sizeof(INPUT));
    }
    int main() {
        printf("鼠标连点器1.0
    按下F7左键连点
    按下F8右键连点
    按下Esc结束连点
    注:输入间隔时间后要等待3秒
    ");
        while(1) {
            if(KEY_DOWN(VK_F7)) {
                printf("输入间隔时间(单位:毫秒):");
                int s;
                bool ok=1;
                scanf("%d",&s);
                Sleep(3000);
                while(1) {
                    if(ok==0)
                        break;
                    L_Down();
                    L_Up();
                    for(int i=1; i<=max(s*100000,10); i++)
                        if(KEY_DOWN(VK_ESCAPE)) {
                            ok=0;
                            break;
                        }
                }
            }
            if(KEY_DOWN(VK_F8)) {
                printf("输入间隔时间(单位:毫秒):");
                int s;
                bool ok=1;
                scanf("%d",&s);
                Sleep(3000);
                while(1) {
                    if(ok==0)
                        break;
                    R_Down();
                    R_Up();
                    for(int i=1; i<=max(s*100000,10); i++)
                        if(KEY_DOWN(VK_ESCAPE)) {
                            ok=0;
                            break;
                        }
                }
            }
        }
        return 0;
    }
  • 相关阅读:
    ActiveX控件的注册和反注册
    谷歌浏览器调用activex控件方法
    VC 中的ATL ActiveX 和 MFC ActiveX 有什么区别
    DirectX介绍(转)
    最简单的基于FFMPEG的图像编码器(YUV编码为JPEG)(转)
    统计Visual Studio项目的代码行数
    【Sqlite3】sqlite_sequence表(转)
    linuxunix系统下的字符操作
    tif
    字符串截取
  • 原文地址:https://www.cnblogs.com/w20230071/p/13833642.html
Copyright © 2011-2022 走看看