博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用C#打开Caps lock键
阅读量:5743 次
发布时间:2019-06-18

本文共 1407 字,大约阅读时间需要 4 分钟。

在.net winform应用程序中如何打开capslock 键呢?或者在程序启动的时候,capslock键就变亮了呢,今天在国外的一个论谈看到了解决方案,事实上很简单的.我们只要DllImport attribute 去调用系统的函数就可以了.部分代码如下:
复制
保存
private void Form1_Load(object sender, EventArgs e){    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) 0);}[DllImport("user32.dll")]static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);
当热行load的时候,Caps Lock的灯就亮了。呵呵。
DllImport..顾名思议.就是导入Dll文件.让C# 可以调用系统的的API.user32.dll是用户界面的一个API.据说SendKeys()这个方法也可以实现类似的功能。但我试过却没有效果。
那么如何等获得caps lock 的状态呢:
复制
保存
// An umanaged function that retrieves the states of each key[DllImport("user32.dll",     CharSet = CharSet.Auto,    ExactSpelling = true,     CallingConvention = CallingConvention.Winapi)]public static extern short GetKeyState(int keyCode); bool CapsLock = (((ushort) GetKeyState(0x14)) & 0xffff) != 0;bool NumLock = (((ushort) GetKeyState(0x90)) & 0xffff) != 0;bool ScrollLock = (((ushort) GetKeyState(0x91)) & 0xffff) != 0;// Show the statusMessageBox.Show("Caps Lock is on: " + CapsLock.ToString());MessageBox.Show("Num Lock is on: " + NumLock.ToString());MessageBox.Show("Scroll Lock is on: " + ScrollLock.ToString());本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/archive/2009/09/07/1561801.html,如需转载请自行联系原作者
你可能感兴趣的文章
JavaScript indexOf() 方法
查看>>
用Bootstrap写一份简历
查看>>
ZJU PAT 1023
查看>>
WMI远程访问问题解决方法
查看>>
从零开始学习IOS,(UILabel控件)详细使用和特殊效果
查看>>
Android开发历程_15(AppWidget的使用)
查看>>
阿花宝宝 Java 笔记 之 初识java
查看>>
7、设计模式-创建型模式-建造者模式
查看>>
Cesium官方教程11--建模人员必读
查看>>
我国古代的勾股定理
查看>>
Linux下的C编程实战
查看>>
[32期] html中部分代码与英语单词关系
查看>>
PHP安装环境,服务器不支持curl_exec的解决办法
查看>>
jQuery|元素遍历
查看>>
RedHat 6 安装配置Apache 2.2
查看>>
Openstack 安装部署指南翻译系列 之 Manila服务安装(Share Storage)
查看>>
underscore.js学习笔记
查看>>
windows下常用命令
查看>>
1.5编程基础之循环控制_29:数字反转
查看>>
组策略 之 设备安装设置
查看>>