目前做個小程式, 需要監控 PPT的播放翻頁情況, 也就是 ppt翻頁后 通知主程式, 我用spy++ 看了下,ppt 翻頁的時候 有訊息, 請問下,如何攔截這個訊息? (我目前用的方法 是用執行緒讀取記憶體資料, 但是 powerpoint是32位的還好,地址都找到了, 如果是64位的 地址還沒抓到, 并且不穩定, 所有想從攔截 訊息方面入手,) 學習了幾個 hook的例子, 都不成功
uj5u.com熱心網友回復:
取得視窗句柄所在執行緒的ID,因為SetWindowsHOOK要的引數是執行緒IDuj5u.com熱心網友回復:
對hook不太懂, 我對著萬一的博客中的例子 做全域滑鼠鉤子 或者鍵盤鉤子 都能攔截, 但是 攔截指定表單 , 只能攔截本程式, 不能攔截到 ppt的表單 hook:=setWindowsHookEx(WH_cat,proc,HInstance,0); 或者 hook:=setWindowsHookEx(WH_cat,proc,HInstance,PPPTPid); 都這樣,uj5u.com熱心網友回復:
dll 代碼 ,, 求大神指點下, 不進入回呼函式
function HookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
{
case wParam of
WM_MOUSEMOVE : info := '滑鼠位置';
WM_LBUTTONDOWN : info := '按下';
WM_LBUTTONUp : info := '放開';
end;
info := Format('%s: %d,%d', [info, PMouseHookStruct(lParam)^.pt.X, PMouseHookStruct(lParam)^.pt.Y]);
}
{通過訊息把資料傳遞給指定視窗}
info:=IntToStr(wParam);
PostMessage(h, WM_MyMessage, 0, Integer(PChar(info)));
Result := CallNextHookEx(hook, nCode, wParam, lParam);
end;
function SetHook: Boolean; stdcall;
const
WH_MOUSE_LL =14;
var h:HWND; id:Cardinal;
begin
//查找到powrpointView表單句柄
h:=FindWindow('PPTFrameClass',nil);
h:=FindWindowEx(h,0,'MDIClient',nil);
h:=FindWindowEx(h,0,'mdiClass',nil);
h:=FindWindowEx(h,0,'paneClassDC',nil);
id:=GetWindowThreadProcessId(h,nil);
hook := SetWindowsHookEx(WH_CALLWNDPROC, @HookProc, HInstance,id );
Result := hook <> 0;
end;
uj5u.com熱心網友回復:
用 spy++ 抓取的 訊息是
uj5u.com熱心網友回復:
做全域滑鼠鉤子 或者鍵盤鉤子才行。應為行程在不同記憶體空間不能互相訪問。必須注入元件時自己的程式和別的程式共享一個記憶體塊才能從別個程式中獲取資訊。
uj5u.com熱心網友回復:
不懂....
如果您方便的化, 能不能寫個簡單的demo , 萬分感謝
uj5u.com熱心網友回復:
Hook視窗程序,WH_CALLWNDPROC這個鉤子會勾掉所有訊息的處理程序你也可以直接替換掉視窗程序,拿到處理權限,然后SetWindowLong替換掉視窗程序
uj5u.com熱心網友回復:
如果只是監控翻頁情況的話,我覺得你可以換個思路,使用OLE編程,直接呼叫PowerPoint的相應API不就可以了嗎,只搞過EXCEL的,對于Powerpoint的操作沒搞過uj5u.com熱心網友回復:
或者你在Powerpoint里撰寫一段VB代碼,直接把訊息傳出來也可以的吧uj5u.com熱心網友回復:
PPT翻頁,視窗不變更,僅更換內容(頁面)。uj5u.com熱心網友回復:
因為是用戶環境不同, ppt版本和檔案不用, 無法再ppt中插入vba腳本,
uj5u.com熱心網友回復:
http://download.csdn.net/download/sololie/6271981轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/46022.html
上一篇:RTSP/RTMP/GB28181協議/海康SDK/Ehome協議接入TSINGSEE青犀視頻平臺磁盤空間計算介紹
