SetWindowsHookEx挂WH_GETMESSAGE

解决方案 »

  1.   

    不好意思可以再說詳細一點嗎?因為我對API的部分很弱!感恩!
      

  2.   

    https://www.google.com/search?newwindow=1&q=SetWindowsHookEx+WH_GETMESSAGE&oq=SetWindowsHookEx+WH_GETMESSAGE&gs_l=serp.12..0l2j0i30j0i5i30.2351.2606.0.3232.2.2.0.0.0.0.287.352.1j0j1.2.0....0...1c.1.44.serp..1.1.63.c0zHber0tek
      

  3.   

    謝謝pathletboy 的協助,只是我想請問有沒有使用方法與例子?因為我查了很久~還是不會用!感恩!
      

  4.   

    如果你的窗体(不论是在主程序或dll中)都有一个共同基类,那么可以处理CN_Command消息:所有窗体上的按钮click事件执行前,消息都会从所在窗体走一圈后,再触发click事件。这样就可以在基类的Cn_Command中做你想做的事了。
      

  5.   

    這樣說好了~我在我的主程序EXE檔裡判斷如果程式idle就開始計算時間,30分後自動關閉這個模組的所有程式,
    原做法是用ApplicationEvents攔截所有的WM_keydown與滑鼠按下的事件,如有發生這兩者事件時間重新計算,解決了某些模組,
    但後來遇到~打開某個Dll,這個Dll會自行計算1分鐘,執行bottm去Reflash畫面,
    但在exe的卻抓不到dll的任何事件消息!感謝您的回答!
    只是我不太懂你說的!煩請你可以用例子或用法跟我說嗎?謝謝!
      

  6.   

    因为你有特别说明过是按钮事件,似乎限定了这个条件,所以我给出的方法也比较局限。看你回复的意思,目标是:在进程活动的状态下,keydown或mousedown不论是否有意义(执行某功能),都将重新计算idle时间。如果是这样,只能通过钩子实现了。
    这个资源里有钩子的封装类,并带有demo
    http://download.csdn.net/detail/avan_lau/7388727
      

  7.   

    你所謂的钩子也就是 SetWindowsHookEx這個嗎?
      

  8.   

    好的!
    SetWindowsHookEx(WH_KEYBOARD, KeyboardHook, 0, GetCurrentThreadID); 
    KeyboardHook是寫成一個function==>應該是由這邊去取得按鈕click事件的吧?
    這樣wParam =  ?才能截取我要的事件呢?