gpt4 book ai didi

delphi - 当我的应用程序没有焦点时,如何捕获键盘状态?

转载 作者:行者123 更新时间:2023-12-03 14:46:44 27 4
gpt4 key购买 nike

我女朋友的新笔记本电脑没有 NumLock 和 CapsLock 的 LED 指示灯,因此我编写了一个小程序,在屏幕上显示它们的状态:

procedure TForm1.Timer1Timer(Sender: TObject);  
var
KeyState: TKeyboardState;
begin
GetKeyboardState(KeyState);
if KeyState[VK_NUMLOCK] = 0 then
PanelNumLock.Color := clSilver
else
PanelNumLock.Color := clLime;
if KeyState[VK_CAPITAL] = 0 then
PanelCapsLock.Color := clSilver
else
PanelCapsLock.Color := clLime;
end;

enter image description here

只要我的程序具有焦点,此功能就有效,但是当焦点转到另一个程序时,程序状态将不再更新。 (但是,只需将鼠标移到表单上,无需单击,就足以更新。)

当另一个应用程序获得焦点时,如何让程序更新?

最佳答案

您可以简单地使用 GetKeyState在你的计时器中。

if GetKeyState(VK_NUMLOCK) = 1 then
PanelNumLock.Color := clLime
else
PanelNumLock.Color := clSilver;

if GetKeyState(VK_CAPITAL) = 1 then
PanelCapsLock.Color := clLime
else
PanelCapsLock.Color := clSilver;

即使您的应用程序没有焦点,这也可以工作。在 XP 上测试。

关于delphi - 当我的应用程序没有焦点时,如何捕获键盘状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34410158/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com