Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 卡普斯洛克酒店;取消申请_C#_Capslock - Fatal编程技术网

C# 卡普斯洛克酒店;取消申请

C# 卡普斯洛克酒店;取消申请,c#,capslock,C#,Capslock,我有下面的代码在应用程序启动时更改Caps Lock键的状态 我想在启动应用程序时将Caps Lock状态更改为ON(如果它已经打开,那么它应该保持打开)。当应用程序关闭时,Caps Lock状态应更改为OFF。对于如何实现这一点,有什么建议吗 namespace WindowsFormsApplication2 { public partial class Form1 : Form { [DllImport("user32.dll")] sta

我有下面的代码在应用程序启动时更改Caps Lock键的状态

我想在启动应用程序时将Caps Lock状态更改为ON(如果它已经打开,那么它应该保持打开)。当应用程序关闭时,Caps Lock状态应更改为OFF。对于如何实现这一点,有什么建议吗

namespace WindowsFormsApplication2
{

    public partial class Form1 : Form
    {
        [DllImport("user32.dll")]
        static extern void keybd_event(byte bVk, byte bScan, uint dwFlags,
        UIntPtr dwExtraInfo);



        public Form1()
        {
            InitializeComponent();

            const int KEYEVENTF_EXTENDEDKEY = 0x1;
            const int KEYEVENTF_KEYUP = 0x2;
            keybd_event(0x14, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0);
            keybd_event(0x14, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
            (UIntPtr)1);
}

请看这篇文章,了解了解caps lock是否开启的API:-

有关注释,请参见示例:-

AppDomain.CurrentDomain.ProcessExit += new EventHandler(OnExit);

public void OnExit(object sender, EventArgs e)
{
    // check and turn caps off if neccessary
}

我觉得这会让你的用户很恼火。我不明白你的问题是什么。(另外,我认为你不能在函数中声明常量。)OK@chrisw69但是当我关闭我的应用程序capslock仍然在plz上时会怎么样?帮助我在c上新建?你可以注册一个事件,使用上述建议检查caps lock是否打开,然后使用你的原始代码关闭caps lock。这个方法正在工作,我在应用程序关闭时会显示一个消息框。但是capslock仍然打开。请告诉我它的确切编码。因为在关闭应用程序时,上面的消息框不起作用。谢谢