![]() |
1
2
我可以确认使用shcmbm_overridekey在PPC和SP设备上都有效。我已经在wm5 ppc、wm5 sp、wm6 ppc、wm6 sp上测试过了。我还没有尝试过wm6.1或wm6.5,但我认为它们在wm6工作之后就可以工作了。 您可能还需要在通话过程中支持DTMF? 因为我在写一个lap dll,所以我遵循了下面的页面,您可能会发现这一页面很有用: LAP Implementation Issues 这些例子是用C语言编写的,因此您必须将它们翻译成C。 要为特定窗口设置“对话”键的补漏白,您需要执行以下操作:
您可以随时打开/关闭陷阱。要关闭陷阱也很容易:
要检测何时按下“talk”(通话)键,您需要在window proc上捕获wm_热键窗口消息:
要拨打电话,您需要使用“phone make call”API:
要在通话中支持DTMF,您需要使用 SNAPI (我相信那里有一个C图书馆可以帮助你 SystemProperty ) 启动呼叫后的设置:
当呼叫计数更改时,将使用您提供的窗口消息回调您。您需要读取注册表并检查调用计数是否降至零。如果需要关闭Snapi手柄:
在通话中,使用用户按下的键向CProg应用程序发送消息:
|
![]() |
2
2
您可以通过一个键盘钩子捕捉世界中的所有键(桌面上的ctrl+alt+del除外): 您可以通过coredll.dll(而不是user32)在CE中使用这个(或其他重写之一)。 但是,这不在.NET Compact框架中,需要P/Invoke。“免费”按键的最大乐趣是form.keypreview=true;这只会给你在窗体聚焦时被击中的键,有时在处理具有特殊键的设备时什么也没有(可能是你的“发送”键,因为我以前在Intermec设备上使用“application1”键时遇到过类似的情况)。 不过,我相信还有一个很好的选择 OpenNETCF either already does or will very soon roll with a keyhook (通过上面的winapi调用)公开一个令人愉快的托管包装。快乐! 如果还没有准备好的话,有大量的文章和代码可以用来演示如何通过谷歌使用它,所以在最坏的情况下,如果你执行类似的搜索,你应该能够找到一些东西。 this . 也许有点像 this ? |
![]() |
3
0
不使用指定的 PhoneMakeCall ?它可用于智能手机和Windows Mobile 6专业版。 编辑:我有点误解了这个问题。我知道你现在想 陷阱 发送事件。不过,我还是留下我的答案作为参考。 |