如何在Windows Mobile或MC67中禁用密钥重复

时间:2013-08-28 08:53:28

标签: c# windows-mobile

我在Windows Mobile 6.0中使用摩托罗拉MC67并使用c#compact framework编写。

我想禁用密钥重复,所以如果你长按"输入"例如,我不会获得超过一个"输入"按。我搜索了摩托罗拉手册,并尝试了here给出的建议:

Registry.SetValue(@"HKCU\ControlPanel\Keybd", "RepeatRate", "1000000");

但没有用。

任何人都可以帮助我吗?

要明确一点:我可以从我的代码中更改注册表,但即使我将速率更改为最大可能,它也会忽略注册表中的值。

2 个答案:

答案 0 :(得分:1)

如果此键是软件按钮,则可以禁用该按钮:

private void btnOK_Clicked(object sender, EventArgs e) {
  btnOK.Enabled = false;
  try {
    // Your code here
  } finally {
    btnOK.Enabled = true;
  }
}

如果这是您设备上的物理密钥,我真的不知道如何进入并设置“点击率”(或其他任何名称),但您可以尝试添加lock你的日常工作。

private object m_lock = new object();

private void textbox_Changed(object sender, EventArgs e) {
  lock (m_lock) {
    // Your code here
  }
}
但是,我不知道这是否会有所帮助。我无法测试,因为我的设备似乎没有同样的问题。

答案 1 :(得分:1)

硬件键盘可能不关心注册表设置,硬件驱动程序是OEM特定的。

RepeatRate是a)从高到高(外部规格),b)将在重新启动后进行,c)可以仅控制软件键盘。

这是一个最终来到IOCtl解决方案的长线程:http://social.msdn.microsoft.com/Forums/en-US/5f322f80-1dba-477e-a77e-d667e8f2031f/keyboard-repeat-rate