【问题标题】:Capture Keystrokes on Symbian OS?在 Symbian OS 上捕获击键?
【发布时间】:2008-10-28 14:19:39
【问题描述】:

如何在 Symbian OS 上的 SMS 编写器中捕获用户击键,特别是对于诺基亚 N73(或任何支持 symbian 的设备http://en.wikipedia.org/wiki/Symbian_OS#Devices_that_have_used_the_Symbian_OS)?我是 symbian 开发的新手,我正在尝试编写一个应用程序来分析发送 SMS 的人的写作风格。任何信息(或朝着正确的方向推进)都会很棒。

非常感谢,

一个

【问题讨论】:

    标签: symbian nokia microsoft-dynamics keystroke


    【解决方案1】:

    实际上,您可以在 Symbian OS 中捕获用于任何应用程序的击键。 RWindowGroup::CaptureKey()RWindowGroup::CaptureLongKey() 允许您的可执行文件从任何应用程序中捕获密钥,无论您的应用程序是否在前台。 但是,在这种情况下,这可能会变得乏味 - 这两个功能通过捕获特定的键代码和修饰符组合来工作,因此您必须设置大量捕获来处理 SMS 编写器中的所有键组合。

    您还必须在可执行文件捕获事件后将事件传递给 SMS 编写器。虽然名义上可以使用 RWsSession::SendEventToWindowGroup()TApaTask::SendKey(),但涉及事件以正确的顺序(即按下键、键事件、按下键)以及不同 FEP(前端处理器)的行为以供用户输入的复杂性。

    因此,尽管按照上述方式执行您的要求在名义上是可行的,但实施和测试将被证明是乏味的,接近于风险。如果您只想分析写作风格以收集数据(而不是在产品应用程序中),您最好编写自己的 SMS 编写器 - 诺基亚论坛网站上有很多关于编辑器和 SMS 发送的示例。

    【讨论】:

      【解决方案2】:

      在相关说明中,当我在 Symbian 手机上对其 API 感到沮丧时,是否有一个 API 可以检测所有被按下的键? ;-)

      【讨论】:

        【解决方案3】:

        嗯,有几个级别可以回答您的问题。

        • 击键实际上是由消息编辑器应用程序捕获的。因此,它要么提供一个 API 来为您提供所有击键(您可以在 http://forum.nokia.com 上查找一个。您会找到消息编辑器 API,但它主要是关于重用 GUI 控件而不是您正在寻找的内容for) 或者您需要自己的透明应用程序,该应用程序位于前台并捕获击键,然后再将它们反馈给恰好在后面的任何应用程序。幸运的是(出于明显的安全原因),Symbian OS 不允许您这样做。

        • 但是,当消息保存在手机内存中时,您可以让自己的应用程序读取消息:当它们保存在草稿文件夹或 SMS 发件箱中时。

        强制无耻插件:建议阅读http://www.quickrecipesonsymbianos.com的消息章节,以了解如何使用Symbian Message Store

        您感兴趣的类别是:CmsvEntry、CMsvSession、MMsvSessionObserver、CMsvOperation 和 CSmsClientMtm。

        【讨论】:

          猜你喜欢
          • 2013-10-28
          • 2018-12-21
          • 2015-08-04
          • 2011-05-12
          • 1970-01-01
          • 2010-12-29
          • 1970-01-01
          • 2011-04-23
          • 1970-01-01
          相关资源
          最近更新 更多