小编Niv*_*ivo的帖子

无法将单个按键功能发送到远程桌面

在深入钻取网页之后,这是我的代码,遗憾的是,它不会将密钥作为大写发送:/

MapVirtualKey实现:

    const uint MAPVK_VK_TO_VSC = 0x00;
    const uint MAPVK_VSC_TO_VK = 0x01;
    const uint MAPVK_VK_TO_CHAR = 0x02;
    const uint MAPVK_VSC_TO_VK_EX = 0x03;
    const uint MAPVK_VK_TO_VSC_EX = 0x04;

    [DllImport("user32.dll")]
    public static extern int MapVirtualKey(uint uCode, uint uMapType);
Run Code Online (Sandbox Code Playgroud)

SendInput实现:

        struct INPUT
{
           public UInt32 Type;
           public MOUSEKEYBDHARDWAREINPUT Data;
Run Code Online (Sandbox Code Playgroud)

}

  [StructLayout(LayoutKind.Explicit)]
struct MOUSEKEYBDHARDWAREINPUT
{
    [FieldOffset(0)]
    public MOUSEINPUT Mouse;

    [FieldOffset(0)]
    public KEYBDINPUT Keyboard;

    [FieldOffset(0)]
    public HARDWAREINPUT Hardware;
}


  [DllImport("user32.dll", SetLastError = true)]
    static extern UInt32 SendInput(UInt32 numberOfInputs, INPUT[] inputs, Int32 sizeOfInputStructure);
Run Code Online (Sandbox Code Playgroud)

现在为方法:

此方法将键发送为字符串,通过远程桌面可以正常工作:

        public …
Run Code Online (Sandbox Code Playgroud)

c# keyboard desktop sendinput

12
推荐指数
1
解决办法
3684
查看次数

标签 统计

c# ×1

desktop ×1

keyboard ×1

sendinput ×1