以文本方式查看主题

-  搭建论坛  (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 ...