首页 > 其他分享 >win32 SendInput

win32 SendInput

时间:2023-01-29 22:34:21浏览次数:57  
标签:ip ki SendInput win32 key INPUT DWORD

SendInput

代替了 mouse_event 以及 keybd_event

prototype

UINT WINAPI SendInput(
_In_ UINT nInputs,
_In_ LPINPUT pInputs,
_In_ int cbSize
);

LPINPUT

typedef struct tagINPUT {
    DWORD   type;

    union
    {
        MOUSEINPUT      mi;
        KEYBDINPUT      ki;
        HARDWAREINPUT   hi;
    };
} INPUT, *PINPUT, FAR* LPINPUT;

MOUSEINPUT

typedef struct tagMOUSEINPUT {
    LONG    dx;
    LONG    dy;
    DWORD   mouseData;
    DWORD   dwFlags;
    DWORD   time;
    ULONG_PTR dwExtraInfo;
} MOUSEINPUT, *PMOUSEINPUT, FAR* LPMOUSEINPUT;

KEYBDINPUT

typedef struct tagKEYBDINPUT {
    WORD    wVk;
    WORD    wScan;
    DWORD   dwFlags;
    DWORD   time;
    ULONG_PTR dwExtraInfo;
} KEYBDINPUT, *PKEYBDINPUT, FAR* LPKEYBDINPUT;

HARDWAREINPUT

typedef struct tagHARDWAREINPUT {
    DWORD   uMsg;
    WORD    wParamL;
    WORD    wParamH;
} HARDWAREINPUT, *PHARDWAREINPUT, FAR* LPHARDWAREINPUT;

use keyboard

#define WINVER 0x0500
#include <windows.h>

int main()
{
    // This structure will be used to create the keyboard
    // input event.
    INPUT ip;

    // Pause for 5 seconds.
    Sleep(5000);

    // Set up a generic keyboard event.
    ip.type = INPUT_KEYBOARD;
    ip.ki.wScan = 0; // hardware scan code for key
    ip.ki.time = 0;
    ip.ki.dwExtraInfo = 0;

    // Press the "A" key
    ip.ki.wVk = 0x41; // virtual-key code for the "a" key
    ip.ki.dwFlags = 0; // 0 for key press
    SendInput(1, &ip, sizeof(INPUT));

    // Release the "A" key
    ip.ki.dwFlags = KEYEVENTF_KEYUP; // KEYEVENTF_KEYUP for key release
    SendInput(1, &ip, sizeof(INPUT));

    // Exit normally
    return 0;
}

... 目前还未测试使用,仅仅见到了进行记录
https://stackoverflow.com/questions/22419038/how-to-use-sendinput-function-c

标签:ip,ki,SendInput,win32,key,INPUT,DWORD
From: https://www.cnblogs.com/sqmw/p/17073996.html

相关文章

  • win32 MouseHook
    //MOUSE借助GetMessage和PeekMessage实现#define_WIN32_WINNT0x0400//#pragmacomment(lib,"user32.lib")#include<windows.h>#include<stdio.h>HHOOKh......
  • Jmeter报java.lang.NoClassDefFoundError: com/sun/jna/platform/win32/Kernel32错误
    1.报错如下:​​2020-03-0616:36:07,959ERRORo.a.j.JMeter:Uncaughtexception:java.lang.NoClassDefFoundError:com/sun/jna/platform/win32/Kernel32atjava.lang.C......
  • [转]python库 Pywin32使用
    本文转自:https://www.cnblogs.com/chenjy1225/p/12174889.htmlpython库Pywin32使用 https://github.com/wuxc/pywin32docPywin32提供了很多访问windows的API。较重......
  • Win32拷贝文件夹
    下面的代码展示了如何拷贝文件夹:BOOLCopyDir(LPCTSTRlpszSrcDir,LPCTSTRlpszDstDir){SHFILEOPSTRUCTsfo;ZeroMemory(&sfo,sizeof(sfo));sf......
  • win32com操作word API精讲 第六集 Range(四)对齐和缩进
    本课程《win32com操作wordAPI精讲&项目实战》同步在B站、今日头条、视频号及本公众号发布。其中本公众号以发布文字教程为主。今天是大年初二,一灯在此祝愿各位朋友兔年......
  • dart win32 字符串指针
    获取窗口标题finalp=malloc<Pointer<Utf16>>(50);//在C语言中其实只需要传入一个字符串的指针就可以了,这里的话,是指针的指针GetWindowText(0x000908A6,p.value......
  • win32 ShowWindow
    ///这个函数调用之后就会给系统置于maximize状态,如果我们没有调用其他的方法回复状态,我们就先对窗口的大小进行设置后,随后不能进行再次进行最大化,调用下面的ShowWindow(hW......
  • win32 获取窗口大小
    //以下两个函数获取的是显示屏幕的大小,不包括任务栏等区域intscreenwidth=GetSystemMetrics(SM_CXFULLSCREEN);intscreenheight=GetSystemMetrics(SM_CYFULLSCREE......
  • win32com操作word 第二集:Application&Documents接口
    本课程《win32com操作wordAPI精讲&项目实战》以视频为主,文字教程为辅,公众号ID:一灯编程。先回答一个网友私信问题:win32com和微软的word接口文档有什么关系win32com......
  • 一个使用Win32api的简单乐谱解析器
    音调数据enumscale{Rest=0,A0=21,A0s=22,B0=23, C1=24,C1s=25,D1=26,D1s=27,E1=28,F1=29,F1s=30,G1=......