中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c#中sendinput的用法是什么

c#
小億
106
2024-06-03 10:11:11
欄目: 編程語言

在C#中,SendInput方法用于模擬用戶輸入,如鍵盤按鍵和鼠標事件。它可以用來自動化測試、模擬用戶操作等場景。

下面是一個SendInput方法的示例代碼:

using System;
using System.Runtime.InteropServices;

public class InputSimulator
{
    [DllImport("user32.dll", SetLastError = true)]
    private static extern uint SendInput(uint nInputs, INPUT[] pInputs, int cbSize);

    [StructLayout(LayoutKind.Sequential)]
    public struct INPUT
    {
        public uint type;
        public InputUnion u;
    }

    [StructLayout(LayoutKind.Explicit)]
    public struct InputUnion
    {
        [FieldOffset(0)]
        public MOUSEINPUT mi;
        [FieldOffset(0)]
        public KEYBDINPUT ki;
    }

    public struct MOUSEINPUT
    {
        public int dx;
        public int dy;
        public uint mouseData;
        public uint dwFlags;
        public uint time;
        public IntPtr dwExtraInfo;
    }

    public struct KEYBDINPUT
    {
        public ushort wVk;
        public ushort wScan;
        public uint dwFlags;
        public uint time;
        public IntPtr dwExtraInfo;
    }

    public static void SendKey(ushort key)
    {
        INPUT[] inputs = new INPUT[1];
        inputs[0].type = 1; // Input is a keyboard event
        inputs[0].u.ki.wVk = key;
        inputs[0].u.ki.dwFlags = 0; // Key press

        SendInput(1, inputs, Marshal.SizeOf(inputs[0]));
    }
}

使用以上代碼,你可以調用InputSimulator類的SendKey方法來模擬按下指定的鍵盤按鍵。例如,若要模擬按下A鍵,可以這樣調用:

InputSimulator.SendKey(0x41);

上述示例僅演示了如何模擬鍵盤事件,你也可以根據需要,擴展代碼以支持鼠標事件等其他功能。

0
新竹市| 漳州市| 黄浦区| 福泉市| 新宾| 乾安县| 莱阳市| 宁乡县| 巩义市| 南昌市| 海淀区| 南充市| 肥西县| 墨竹工卡县| 邓州市| 白沙| 封丘县| 若羌县| 深圳市| 和静县| 兖州市| 尖扎县| 花莲县| 蚌埠市| 常州市| 宁都县| 闸北区| 秀山| 林周县| 西充县| 涟源市| 社旗县| 肥西县| 山西省| 清水河县| 涿州市| 中卫市| 即墨市| 交口县| 塔城市| 安徽省|