我想做個鉤子,來鉤取Windows Media Player的相關動作,如: 播放,暫停,停止...
安裝的HOOK是:
hook = SetWindowsHookEx(WH_GETMESSAGE,//
(HOOKPROC)msghook,...);
static LRESULT CALLBACK msghook(UINT nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode < 0)
{
CallNextHookEx(hook, nCode, wParam, lParam);
return 0;
}
LPMSG msg = (LPMSG)lParam;
switch(msg->message)
{
case WM_COMMAND:
{
// 處理...
break;
}
}
return CallNextHookEx(hook, nCode, wParam, lParam);
}
上面的做法沒有錯,...可以抓到Windows Media Player的菜單動作,但抓不到Windows Media Player上的按鈕動作,.......請問問題出在哪裡啊....?
安裝的HOOK是:
hook = SetWindowsHookEx(WH_GETMESSAGE,//
(HOOKPROC)msghook,...);
static LRESULT CALLBACK msghook(UINT nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode < 0)
{
CallNextHookEx(hook, nCode, wParam, lParam);
return 0;
}
LPMSG msg = (LPMSG)lParam;
switch(msg->message)
{
case WM_COMMAND:
{
// 處理...
break;
}
}
return CallNextHookEx(hook, nCode, wParam, lParam);
}
上面的做法沒有錯,...可以抓到Windows Media Player的菜單動作,但抓不到Windows Media Player上的按鈕動作,.......請問問題出在哪裡啊....?
解决方案 »
- dll中全局变量的非导出成员的初始化问题
- 谁有《实用图像分析与处理技术.pdf》
- 关于动态对象用不用删除的问题?
- 类对象的直接赋值
- 在vc6.0环境下写WinMain函数问题
- PrintWindow好像只支持XP或2003,如何做能让它在2000下也能使用?
- ASP 内部对像 Request->get_item 的使用方法
- 见鬼,字符串常量就OK,变量就出错
- 用CArchive序列化的问题
- CoGetClassObject(REFCLSID.....LPVOID *ppvObj)为什么要传个指针的指针?
- 在网页中如何检测机器中是否安装了某个软件???这个软件是我自己用VC做的。VC
- RichEdit 内容显示问题
我省掉了...沒有寫出來..加個問題???--對於SetWindowsHookEx的最後一個參數是ThreadID,如何獲得呢?知道他的窗口句柄,....我暫時從VC++的SPK++上獲得的,..但具體是如何獲得具體某個應用程式的ThreadID??有誰知道嗎???-->>Windows Media Player的那些不是真正的按钮,而是画上去的图片,...
自画????
哪他是怎麼動作的阿....按下去後,他的動作又是怎麼激活的阿....
hwnd=::FindWindow(NULL,_T("窗口名字")); //通过窗口名获得窗口句柄
DWORD Pid=::GetWindowThreadProcessId(hwnd,NULL); //通过窗口句柄获得进程ID
是画的按鈕????
哪他是怎麼動作的阿....按下去後,他的動作又是怎麼激活的阿....
---在完整模式下, 無論在那裡按下去,都發同樣的消息,所帶的2個參數wParam,lParam都為0,
---在面板模式下, 在畫的按鈕上按下去的消息是一樣的,也和上面一樣的消息,參數也一樣