我希望只要我的应用程序正在运行,就将 num-lock 保持在 ON 状态,这样,如果用户取消切换 num-lock,它将立即重新打开。在 C# 中实现这一目标的最简单方法是什么?
需要澄清的是,当我的应用程序运行时,我“拥有”用户的计算机,因此在我的特定情况下,用户不需要取消切换数字锁定(这并不意味着我始终拥有焦点)。
谢谢
是否可以在网页的页面加载时检查Scroll Lock,Num Lock和Caps Lock的状态?我已经找到了使用JavaScript在按键后检查的方法,但这不是我要问的.
在我正在开发的游戏中,我想检测NUMLOCK 按键(或keyup),例如在按下时注册“回调”函数。
我并不是要求在给定时刻读取它的状态,我已经可以做到这一点,我也没有兴趣改变它的值。这是关于在按键发生时意识到按键的情况,这样我就不必每隔十分之一秒左右轮询一次其状态。
游戏使用的curses,目前是封锁getch()。Curses 不会检测NUMLOCK按键,我从来没有想到它会检测到(与 LED 相关的键盘不会“产生”任何按键),我想知道是否有任何方法可以做到这一点,这比用 a 替换主 Curses 循环更好非阻塞getch()并调用keyboard_leds()函数来读取当前状态。
例如:我可以在初始化curses后启动一个新线程,将其stdscr屏幕作为参数传递,并且该线程将为按键事件注册一个回调函数(例如,special_keypress())NUMLOCK。因此,该函数只会keyboard_leds()在需要时调用,然后更新stdscr。
我不确定这是否可行,而且我知道我可能必须深入研究一些依赖于体系结构的东西(内核/X11等),所以如果跨平台解决方案不可能,那么我对只使用 Linux 的系统很满意。
我的键盘上有一个Compose键,但是将NumLock键用于其他目的,而将数字键盘仅用于输入数字。因此,我确实不需要NumLock指示灯,但想使用此LED来指示Compose键处于活动状态。在现成的xkb模板中,我找不到能做到这一点的模板。这是我的xkb / compat / lednum文件:
// Use the Num Lock LED to show either
// Num Lock, Group, or Shift Lock state.
default partial xkb_compatibility "num_lock" {
indicator "Num Lock" {
!allowExplicit;
whichModState= Locked;
modifiers= NumLock;
};
};
partial xkb_compatibility "group_lock" {
indicator "Num Lock" {
modifiers= None;
groups=All-group1;
};
};
partial xkb_compatibility "shift_lock" {
indicator "Num Lock" {
whichModState= Locked;
modifiers= Shift;
};
};
Run Code Online (Sandbox Code Playgroud)
在openSuSE 13.2(x86_64)平台上,我的X.org版本是7.6。
有人可以给我一个提示吗?谢谢。
我想以编程方式检查值,并能够切换num-lock.在C#中最简单的方法是什么?
原因是我想在程序启动时验证num-lock是否为"ON".
谢谢
当我使用SendKeys将数据从Excel应用程序复制到另一个(非Microsoft)应用程序时,我的Num Lock将被禁用.
Sub Test()
Range("A1:B71").Select
SendKeys "^C" 'Copies Selected Text
AppActivate "AccuTerm 2K2"
SendKeys "2", True 'Enters to notes screen
SendKeys "^M", True 'Confirms above (Enter key)
SendKeys "^V", True 'Pastes into client application
Application.Wait (Now + TimeValue("0:00:05"))
'Providing time for client application to finish
'pasting...
SendKeys "^M", True 'Next three enters are to
SendKeys "^M", True '...exit notes section
SendKeys "^M", True
AppActivate "Microsoft Excel"
Range("B52:B62").Clear 'Clears the Template
Range("B52").Select 'Resets Cell Position
End Sub
Run Code Online (Sandbox Code Playgroud)