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;
    }
  • 相关阅读:
    Js特效总结
    asp.net中的绝对路径和相对路径
    GrideView合并列合并序号,隐藏某列按钮
    WebConfig 配置文件详解
    ASP.NET打印EXCEl报表技术总结
    ADO.NET DataSet、DataTable、DataRow、DataView的学习
    asp.netGridView使用技巧
    .net Remoting
    C# webservice开发
    js实现网页打印分页打印
  • 原文地址:https://www.cnblogs.com/w20230071/p/13833642.html
Copyright © 2011-2022 走看看