微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 如何通过编程方式调用键盘按键?

问题:
从一段C#代码调用要按下的键盘
但这里有一个问题:按键不应局限于流程/应用程序
但是当整个操作系统收到时,当程序处于后台并且不同的表单/程序具有焦点时也是如此

目标:
制作一个锁定CapsLock和Numlock状态的程序

背景:
我有一台笔记本电脑,这两个键让我很沮丧,我想制作一个后台运行的应用程序,一旦意外启用就禁用CapsLock,并且Numlock永远不会被禁用,我想要为了扩展我对编码的了解,我试图找到解决方案,但没有一个解决(整个)问题.

解决方法

using System;
using System.Runtime.InteropServices;

public class CapsLockControl
{

    public const byte VK_NUmlock = 0x90;
    public const byte VK_CAPSLOCK = 0x14;

    [DllImport("user32.dll")]
        static extern void keybd_event(byte bVk,byte bScan,uint dwFlags,UIntPtr dwExtraInfo);
    const int KEYEVENTF_EXTENDEDKEY = 0x1;
    const int KEYEVENTF_KEYUP = 0x2;

    public static void Main()
    {
        if (Control.IsKeyLocked(Keys.CapsLock))
        {
            Console.WriteLine("Caps Lock key is ON.  We'll turn it off");
            keybd_event(CapsLockControl.VK_CAPSLOCK,0x45,KEYEVENTF_EXTENDEDKEY,(UIntPtr) 0);
            keybd_event(CapsLockControl.VK_CAPSLOCK,KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,(UIntPtr) 0);
        }
        else
        {
            Console.WriteLine("Caps Lock key is OFF");
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐