• 鼠标连点器


    ////转载于:最强的琛 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;
    }
  • 相关阅读:
    获得目标服务器中所有数据库名、表名、列名
    SQL Server 2008 安装SQLDMO.dll
    三层交换原理
    NAT地址转换原理全攻略
    C#中显/隐式实现接口及其访问方法
    As,is含义?using 语句
    c#泛型约束
    C#几个经常犯错误汇总
    C#--深入分析委托与事件
    markdown基础
  • 原文地址:https://www.cnblogs.com/w20230071/p/13833642.html
Copyright © 2020-2023  润新知