zoukankan      html  css  js  c++  java
  • 使用Sendinput以及GetAsyncKeyState来模拟按键延时

    Code:

    #include <windows.h>
    #include <tchar.h>
    #include <iostream>
    
    BOOL flag = TRUE;
    
    DWORD WINAPI ThreadProc2(LPVOID lpParameter)
    {
        INPUT input[2];
        ZeroMemory(&input, sizeof(input));
        input[0].ki.wVk = input[1].ki.wVk = 0x45;
        input[0].type = input[1].type = INPUT_KEYBOARD;
        while (true)
        {
            if (GetAsyncKeyState(VK_NUMPAD0) & 0x8000)
            {    
                flag = TRUE;
                SetForegroundWindow(HWND(0x00060A3E)); //HWND is used for testing            
                input[1].ki.dwFlags = 0;
                input[0].ki.dwFlags = KEYEVENTF_KEYUP;
                SendInput(2, input, sizeof(INPUT));
                Sleep(500);
                while (flag)
                {                                                            
                    input[1].ki.dwFlags = 0;
                    input[0].ki.dwFlags = KEYEVENTF_KEYUP;
                    SendInput(2, input, sizeof(INPUT));
                    Sleep(10);
                }
    
            }
        }
    }
    
    DWORD WINAPI ThreadProc1(LPVOID lpParameter)
    {
        while (true)
        {
            if (GetAsyncKeyState(VK_NUMPAD0) & 0x8000)
            {
                Sleep(2000);
                flag = FALSE;
    
            }
            else if (GetAsyncKeyState(VK_END) & 0x8000)
            {
                exit(1);
            }
        }
    
    }
    
    int main()
    {
        DWORD tid1 = 0;
        DWORD tid2 = 0;
        HANDLE hThread1 = CreateThread(NULL, 0, ThreadProc1, NULL, 0, &tid1);
        HANDLE hThread2 = CreateThread(NULL, 0, ThreadProc2, NULL, 0, &tid2);
    
        getchar();
        return 0;
    }

    使用了两个线程,一个用于重复发送SendInput,一个用于计时

  • 相关阅读:
    Codeforces Round #380(div 2)
    Codeforces Round #378(div 2)
    Codeforces Round #379(div 2)
    CCPC2016合肥现场赛
    CCPC2016沈阳站
    HDU2222 Keywords Search__AC自动机
    poj2185Milking Grid
    POJ2961_kmp
    POJ 2406
    poj 2752Seek the Name, Seek the Fame
  • 原文地址:https://www.cnblogs.com/strive-sun/p/11990669.html
Copyright © 2011-2022 走看看