当前位置:  开发笔记 > 编程语言 > 正文

如何将密钥重复率提高到操作系统限制以外?

如何解决《如何将密钥重复率提高到操作系统限制以外?》经验,为你挑选了7个好方法。

我习惯使用键盘上的光标键来导航源代码.这是我15年来所做的事情,这当然意味着我的导航速度受到键盘速度的限制.在Vista和OS X(我双启动MacBook)上,我的密钥重复率一直在上升.但是在Visual Studio和其他应用程序中,速率仍然比我想要的要慢得多.

如何在Visual Studio和其他文本编辑器中更快地提高键重复率?



1> Mud..:

在Windows中,您可以使用系统调用(SystemParametersInfo(SPI_SETFILTERKEYS,...))进行设置.

我为自己写了一个实用工具:keyrate .

Github存储库.

链接消失的完整源代码:

#include 
#include 
#include 

BOOL parseDword(const char* in, DWORD* out)
{
   char* end;
   long result = strtol(in, &end, 10);
   BOOL success = (errno == 0 && end != in);
   if (success)
   {
       *out = result;
   }
   return success;
}


int main(int argc, char* argv[])
{
   FILTERKEYS keys = { sizeof(FILTERKEYS) };

   if (argc == 1)
   {
      puts ("No parameters given: disabling.");
   }
   else if (argc != 3)
   {
      puts ("Usage: keyrate  \nCall with no parameters to disable.");
      return 0;
   }
   else if (parseDword(argv[1], &keys.iDelayMSec) 
         && parseDword(argv[2], &keys.iRepeatMSec))
   {
      printf("Setting keyrate: delay: %d, rate: %d\n", (int) keys.iDelayMSec, (int) keys.iRepeatMSec);
      keys.dwFlags = FKF_FILTERKEYSON|FKF_AVAILABLE;
   }

   if (!SystemParametersInfo (SPI_SETFILTERKEYS, 0, (LPVOID) &keys, 0))
   {
      fprintf (stderr, "System call failed.\nUnable to set keyrate.");
   }

   return 0;
}


哇,这很棒.我一直在寻找这样的东西.它在Win 64上适用于我.想知道为什么没有人赞成这一点.我也想知道这是如何在内部工作的.看起来您可以在系统设置中更改"正常"设置,您可以使用这些设置覆盖它们.但"正常"价值仍然存在.不知怎的,它是按设计分层的?!?
@Mud谢谢你,这是2018年最好的解决方案!其他想要使用此技巧的提示:(1)打开命令提示符(2)输入`<file_location> \ keyrate.exe <delay int> <repeat int>`例如“ C:\ Users \ Me \ Downloads \ keyrate.exe 200 7`(3)完成!

2> chuckf..:

很多时候我想把一个功能集中在我的窗口中.滚动是唯一的方法.此外,在有很多非单词字符的代码中,Ctrl-left/right仍然很慢.我也使用键盘.不过,它有几个问题.一,它有时使用默认速度而不是我设置的实际值.另一种有时它会忽略最初的延迟.我仍觉得它非常有用.他们说4年前他们会在6个月内发布消息来源...... :(

好的,根据有人修改HCU\... \键盘响应的建议,这对我很有用.

[HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response]
"AutoRepeatDelay"="250"
"AutoRepeatRate"="13"
"BounceTime"="0"
"DelayBeforeAcceptance"="0"
"Flags"="59"

Windows标准AutoRepeat延迟.13毫秒(77焦耳/秒)重复率.标志打开FilterKeys?这些值在登录时读取.请记住注销并重新登录以使其生效.


更改这些值似乎对Windows 7 64位没有任何影响.
@ marc40000您必须打开过滤器密钥,注销并再次登录才能正常工作.刚刚在Win7 64位上确认.

3> hyperlogic..:

在Mac OS X上,打开"全局首选项"plist

open ~/Library/Preferences/.GlobalPreferences.plist

然后更改KeyRepeat字段.较小的数字将加快您的光标速率.设置对话框仅将其设置为最小值2,因此如果转到0或1,您将获得更快的光标.

我必须重新启动才能生效.



4> Jake..:

对于Windows,打开regedit.exe并导航到HKEY_CURRENT_USER\Control Panel\Keyboard.根据自己的喜好更改KeyboardSpeed.


这甚至有用吗?MSDN声明最大值为31,您可以在控制面板中将其设置为正常值.

5> 小智..:

Visual Assist可以选择将Visual Studio中的有效键移动加倍,我一直在使用它.



6> 小智..:

我在我的电脑上使用KeyboardKing.它是免费软件,它可以将重复率提高到200,这已经足够了.我建议将进程优先级设置为"高",以便进行更平滑的移动,减少"重复锁定",这种情况有时会发生并且非常烦人.优先级高,效果很好.

没有人理解我们为什么用箭头导航.这很有趣.



7> exinocactus..:

键盘首选项窗口

正如hyperlogic所提到的,在Mac OS X上,内部有两个参数来处理键盘速度:KeyRepeatInitialKeyRepeat.在"系统偏好设置"中,它们将映射到滑块Key Repeat RateDelay Until Repeat滑块.滑块范围和相关的内部参数值(括号内)如下所示.它们似乎是15 ms键盘采样间隔的乘数.

Key Repeat Rate (KeyRepeat)                 Delay Until Repeat (InitialKeyRepeat)
|--------------------------------|          |----------------------|-----------------|
slow (120)                      fast (2)    off (30000)            long (120)        short (25)
0.5 char/s                      33 char/s       

幸运的是,这些参数可以直接在~/Library/Preferences/.GlobalPreferences.plist文件中设置超出预定义的限制.我发现以下值对我自己最方便:

KeyRepeat = 1         --> 1/(1*15 ms) = 66.7 char/s
InitialKeyRepeat = 15 --> 15*15 ms = 225 ms

请注意,在最新的Mac OS X版本中,滑块的命名略有不同.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有