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

本文关键字:密钥 MC67 Windows mobile | 更新日期: 2023-09-27 18:29:13

我正在使用摩托罗拉MC67和Windows Mobile 6.0,并在c#紧凑框架中编写。

我想禁用按键重复,所以如果你长按"回车",例如,我不会得到超过一次"回车"按下。我搜索了摩托罗拉的手册,并尝试了这里给出的建议,做:

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

但是没有用。

有人能帮我吗?

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

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

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

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
  }
}

不过,我不知道这是否有帮助。我无法测试,因为我在这里的设备似乎没有同样的问题。

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

重复率是a)太高(超出规格),b)将在首先重新启动后发生,c)可能仅控制软件键盘。

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