gpt4 book ai didi

c# - win CE 6.0 设备上的按钮

转载 作者:可可西里 更新时间:2023-11-01 11:57:14 25 4
gpt4 key购买 nike

在运行 win CE 6.0 的设备上有一个按钮,您需要捕捉它被按下的瞬间。也就是说,直到我们按下按钮,我们的方法才会执行,释放——停止方法。请帮助解决问题。

最佳答案

这是一个带有源代码的 codeproject 链接,可以执行您想要的操作:

http://www.codeproject.com/Articles/49881/Hooking-the-keyboard-message-queue-in-compact-fram

我已在我自己的 WM 项目中成功使用此代码来重新调整音量键和一些其他硬件按钮的用途(我在一个屏幕上使用音量增大/减小作为翻转屏幕方向的触发器)。

这里的代码太多了。在该项目中是 vkmap.cs,它似乎是所有可用键的综合列表:

   public static vkMap[] vkValues = {
new vkMap ( 0x00, "VK_NOTDEF"),
new vkMap ( 0x01, "VK_LBUTTON" ),
new vkMap ( 0x02,"VK_RBUTTON" ),
new vkMap ( 0x03,"VK_CANCEL" ),
...
new vkMap ( 0x30,"VK_0" ),
new vkMap ( 0x31,"VK_1" ),
...
new vkMap ( 0x41,"VK_A" ),
...
new vkMap ( 0xA6,"VK_BROWSER_BACK" ),
new vkMap ( 0xA7,"VK_BROWSER_FORWARD" ),
new vkMap ( 0xA8,"VK_BROWSER_REFRESH" ),

等等.. 总共有 258 个键,但有些键被标记为未定义。

使用代码:

HookKeys hook = new HookKeys();
hook.HookEvent += new HookKeys.HookEventHandler(HookEvent);
hook.Start();

然后在您的 eventHandler 代码中如您所愿 - 我使用 Switch 语句来查找我想要的键:

     switch (vkMap.vkValues[keyBoardInfo.vkCode].s)
{
case "VK_F6":
if ((hookArgs.wParam.ToInt32() == WM_KEYDOWN) || (hookArgs.wParam.ToInt32() == WM_SYSKEYDOWN))
// Code here
break;
case "VK_F7":
if ((hookArgs.wParam.ToInt32() == WM_KEYDOWN) || (hookArgs.wParam.ToInt32() == WM_SYSKEYDOWN))
// Code here
break;
default:
break;
}

我不记得为什么我还要检查 WM_KEYDOWN 和 WM_SYSKEYDOWN.. 抱歉;如果我记得我会发布一个编辑。

当您完成输入时:

hook.Stop();

关于c# - win CE 6.0 设备上的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14185994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com