后台程序控制鼠标所在窗口(未激活的)的滚轮滚动有关问题
后台程序控制鼠标所在窗口(未激活的)的滚轮滚动问题
是这样的,我想写个程序,有如下特性:
(1)后台执行,无窗口
(2)有托盘图标
(3)程序启动后只执行一个任务:就是保证鼠标所在窗口(未激活的)的滚轮能够响应鼠标滚动
我的思路是
但这样只有在程序前台运行且有窗口时可以,请问想实现以上所描述的功能的程序,该如何实现?
------解决思路----------------------
这个消息貌似WINDOWS下只有活动窗口才能接收到吧?
用SetCapture试试,不然就是各种复杂HOOK了。
------解决思路----------------------
这个的使用 SetWindowsHookEx 创建老鼠hook,否则无法截取送到别的窗口的消息
是这样的,我想写个程序,有如下特性:
(1)后台执行,无窗口
(2)有托盘图标
(3)程序启动后只执行一个任务:就是保证鼠标所在窗口(未激活的)的滚轮能够响应鼠标滚动
我的思路是
MSG msg;
while (GetMessage (&msg, NULL, 0, 0))
{
if (msg.message == WM_MOUSEWHEEL)
{
POINT pos;
::GetCursorPos (&pos);
HWND hwnd = ::WindowFromPoint (pos);
WPARAM wParam = msg.wParam;
LPARAM lParam = msg.lParam;
::SendMessage(hwnd, WM_MOUSEWHEEL, wParam, lParam);
}
}
但这样只有在程序前台运行且有窗口时可以,请问想实现以上所描述的功能的程序,该如何实现?
------解决思路----------------------
这个消息貌似WINDOWS下只有活动窗口才能接收到吧?
用SetCapture试试,不然就是各种复杂HOOK了。
------解决思路----------------------
这个的使用 SetWindowsHookEx 创建老鼠hook,否则无法截取送到别的窗口的消息