none
如何在mobile 5.0 取得當前執行緒ID RRS feed

  • 問題

  •  

    小弟我最近想做PDA上的keyboard hook功能,

    查到需使用coredll下的SetWindowsHookExW這個api函數,

    但其中有個參數需要當前執行緒id,PC上有GetCurrentThreadId可呼叫,

    但mobile上並沒有,

    請教各位先進在PDA要用什麼方法才能實作PC上的GetCurrentThreadId呢?

    2009年1月15日 下午 05:01

解答

  • HI,

     

    我用VC++建智慧型裝置程式, 呼叫GetCurrentThreadId會成功, 使用VB建智慧型裝置程式, 不管用Declare或DllImport, 叫用Coredll.dll中的GetCurrentThreadId都失敗, 應該是GetCurrentThreadId不存在於Coredll.dll中, 不過您可以改用以下的方法取取ThreadID: 

     

    Code Snippet

    System.Threading.Thread.CurrentThread.ManagedThreadId

     

     

    tihs
    • 已提議為解答 小朱MVP 2009年1月30日 上午 01:11
    • 已標示為解答 hot823 2012年5月15日 下午 01:12
    2009年1月18日 上午 07:28

所有回覆

  • HI,

     

    根據Microsoft的文件說明, Windows CE 5.0有支援GetCurrentThreadId函數, 請參考:

    http://msdn.microsoft.com/en-us/library/ms885616.aspx

     

    tihs

    2009年1月16日 上午 02:52
  • 謝謝tihs的回答,但我實際呼叫的結果卻是:

    找不到 PInvoke DLL 'coredll' 中的進入點 'GetCurrentThreadId'。

     

    開發環境為 Visual Studio 2008 語言是basic

    api 宣告如下:

    Declare Function GetCurrentThreadId Lib "coredll" Alias "GetCurrentThreadId" () As Integer

     

    呼叫 GetCurrentThreadId 就會出現 "MissingMethodException" 了!

     

    請問這是啥問題呢?

    2009年1月16日 下午 09:31
  • HI,

     

    我用VC++建智慧型裝置程式, 呼叫GetCurrentThreadId會成功, 使用VB建智慧型裝置程式, 不管用Declare或DllImport, 叫用Coredll.dll中的GetCurrentThreadId都失敗, 應該是GetCurrentThreadId不存在於Coredll.dll中, 不過您可以改用以下的方法取取ThreadID: 

     

    Code Snippet

    System.Threading.Thread.CurrentThread.ManagedThreadId

     

     

    tihs
    • 已提議為解答 小朱MVP 2009年1月30日 上午 01:11
    • 已標示為解答 hot823 2012年5月15日 下午 01:12
    2009年1月18日 上午 07:28