我在Windows Mobile 6.0中使用摩托罗拉MC67并使用c#compact framework编写。
我想禁用密钥重复,所以如果你长按"输入"例如,我不会获得超过一个"输入"按。我搜索了摩托罗拉手册,并尝试了here给出的建议:
Registry.SetValue(@"HKCU\ControlPanel\Keybd", "RepeatRate", "1000000");
但没有用。
任何人都可以帮助我吗?
要明确一点:我可以从我的代码中更改注册表,但即使我将速率更改为最大可能,它也会忽略注册表中的值。
答案 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。