全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:820
推到 Plurk!
推到 Facebook!

請問使用hook記錄動作時..可以只記錄特定視窗內的訊號嗎

尚未結案
maddest
一般會員


發表:3
回覆:3
積分:1
註冊:2005-04-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-12 17:12:40 IP:140.134.xxx.xxx 未訂閱
請問各位大大 我現在寫了一個程式,目前可以抓取正在執行的程式的handle 並且可以選擇特定視窗, 我現在想使用WH_JOURNALRECORD要來記錄動作(只想要記錄所選的那個視窗內的動作)也就是說..如果滑鼠移出所選的視窗時就不做記錄的動作...請問要怎麼做 以下從版內所找到的程式範例 LRESULT WINAPI HookProc(int iCode, WPARAM wParam, LPARAM lParam) { recOK=1; int Result=0; if (iCode < 0) Result = CallNextHookEx(hHook,iCode,wParam,lParam); else if (iCode == HC_SYSMODALON) recOK=0; else if (iCode == HC_SYSMODALOFF) recOK=1; else if ((recOK>0) && (iCode == HC_ACTION)) { /* EVENTMSG* event = (EVENTMSG*)lParam;//加入這些就都不會動了>.< if(hh == event->hwnd) { */ EventArr[EventLog]=(*(PEVENTMSGMSG)lParam); EventLog ; // } if (EventLog>=1000) { UnhookWindowsHookEx(hHook); } } return Result; }
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-12 18:09:37 IP:210.68.xxx.xxx 未訂閱
您好:    PO程式碼的方式請參考版規說明,煩請修改謝謝您的配合 >
maddest
一般會員


發表:3
回覆:3
積分:1
註冊:2005-04-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-18 20:26:54 IP:140.134.xxx.xxx 未訂閱
作出來了  
 
LRESULT WINAPI HookProc(int iCode, WPARAM wParam, LPARAM lParam)
{      recOK=1;
  
  TPoint p;
  RECT r;
  ::GetWindowRect(hh,&r);
  
  int Result=0;
  if (iCode < 0)
    Result = CallNextHookEx(hHook,iCode,wParam,lParam);
  else if (iCode == HC_SYSMODALON)
    recOK=0;
  else if (iCode == HC_SYSMODALOFF)
    recOK=1;
  else if ((recOK>0) && (iCode == HC_ACTION))
  {
   
   ::GetCursorPos(&p);
   if(::PtInRect(&r,p))
     {
   
      EventArr[EventLog]=(*(PEVENTMSGMSG)lParam);
      EventLog  ;
   
     }
   
    if (EventLog>=1000)
    {
      UnhookWindowsHookEx(hHook);
    }
  }      return Result;
}
系統時間:2024-05-17 12:41:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!