以文本方式查看主题
- 搭建论坛 (http://bbs.diylsoft.com:8118/starforum/index.asp)
-- 经验交流 (http://bbs.diylsoft.com:8118/starforum/list.asp?boardid=5)
---- 如何检测NUMLOCK按键的状态 (http://bbs.diylsoft.com:8118/starforum/dispbbs.asp?boardid=5&id=32790)
|
-- 作者:xuexue
-- 发布时间:2014-9-30 10:09:22
-- 如何检测NUMLOCK按键的状态
如何检测NUMLOCK按键的状态,请高手能写个试下吗
|
-- 作者:jsphp
-- 发布时间:2014-10-3 10:28:13
--
如何检测Insert、Capslock、NumLock、ScrollLock状态键的状态
可以调用Win API的Getkeyboardstate()函数。
常量 按键名称
VK_INSERT insert键
VK_NUMLOCK Num Lock键
VK_CAPITAL Caps Lock键
VK_SCROLL Scroll Lock键
键盘缓冲区每一位都有一位特定的格式,对于状态键来说,最低位是1时表示状态键处于ON状态,你可以使用odd()函数来确定这一
位的状态,以下是一个简单的例子请参考。例子中放置一个Timer控件、一个StatusBar状态条。
procedure TForm1.Timer1Timer(Sender: TObject);
var ks:tkeyboardstate;
begin
getkeyboardstate(ks);//检测键盘函数
if odd(ks[VK_NUMLOCK]) then
statusbar1.panels.items[0].text:=\'NUM\'
else
statusbar1.panels.items[0].text:=\'\';
if odd(ks[VK_INSERT]) then
statusbar1.panels.items[1].text:=\'INSERT\'
else
statusbar1.panels.items[1].text:=\'\';
if odd(ks[VK_CAPITAL]) then
statusbar1.panels.items[2].text:=\'CAPITAL\'
else
statusbar1.panels.items[2].text:=\'\' ;
if odd(ks[VK_SCROLL]) then
statusbar1.panels.items[3].text:=\'SCROLL\'
else
statusbar1.panels.items[3].text:=\'\';
end; |
|
-- 作者:seedog
-- 发布时间:2014-10-3 10:43:39
--
需要用到 调用系统 API ...
|