2008-10-28 39 views

回答

2

實際上,您可以在Symbian OS中捕獲任何應用程序的鍵擊。 RWindowGroup::CaptureKey()RWindowGroup::CaptureLongKey()讓你的可執行文件,從任何一個應用捕獲鍵,你是否在前臺與否。 然而,在這種情況下,這可能被證明是單調乏味 - 這兩個功能通過捕捉特定的鍵代碼和修改的組合,所以你就必須建立大量捕獲的處理在SMS作曲家所有的組合鍵。

一旦您的exectuable已經捕捉到它,您也必須將事件傳遞給SMS作曲家。雖然名義上能夠利用RWsSession::SendEventToWindowGroup()TApaTask::SendKey(),有複雜涉及的事件的正確順序(即鍵按下,鍵事件,鍵上)和不同前置機(前端處理器),用於用戶輸入的行爲到達。

因此,儘管按照上述要求做標準可行性,但如果以風險爲基礎進行實施和測試,將顯得乏味。如果你想要做的是分析的寫作風格來收集數據(而不是在產品的應用程序),你可能會更好編寫自己的短信作曲家 - 有大量的關於編輯和發送短信的諾基亞論壇網站的例子。

1

嗯,有幾個層面來回答你的問題。

  • 鍵擊實際上是由消息編輯器應用程序捕獲的。所以,無論是它提供了一個API來養活你的所有的擊鍵(你可以找一個在http://forum.nokia.com,你會發現郵件編輯器的API,但將主要對重新使用GUI控件而不是你要找的內容)或者您需要一個自己的透明應用程序,它保留在前臺並捕獲擊鍵,然後再將它們送回任何恰好落後的應用程序。幸運的是(出於明顯的安全原因),Symbian操作系統不會允許您在以後執行此操作。

  • 但是,您可以在手機存儲器中保存自己的應用程序讀取消息:當它們保存在「草稿」文件夾或SMS發件箱中時。

強制性無恥插頭:我會建議閱讀http://www.quickrecipesonsymbianos.com消息一章,以瞭解如何使用Symbian的郵件存儲

在你的情況下,感興趣的類別是:CmsvEntry,CMsvSession,MMsvSessionObserver ,CMsvOperation和CSmsClientMtm。

1

在相關說明 - 是否有一個API可以檢測到所有的按鍵被同時按下,因爲我的API在沮喪地塞滿了我的Symbian手機? ;-)