水平滚动不起作用mouse_event(MOUSEEVENTF_HWHEEL)

我在Windows 7下的Delphi 3中调用这个方法时没有水平滚动:

const MOUSEEVENTF_HWHEEL = $1000; mouse_event(MOUSEEVENTF_HWHEEL, 0, 0, 120, 0); 

垂直滚动与MOUSEEVENTF_WHEEL运作良好。 结果与SendInput相同,返回值表示成功。 我目前的鼠标支持水平倾斜,但没有水平滚动。

使用MOUSEEVENTF_HWHEEL需要什么?

SDK文档: http : //bit.ly/mouse_event

鼠标钩

我在Windows 7下创build了第二个32位的exe程序,只有当水平滚轮滚动时,鼠标才能发送消息。 该钩子接收VSCROLL,但没有HSCROLL消息。

 MouseHook := SetWindowsHookEx(WH_MOUSE_LL, @MouseProc, hInstance, 0); 

 int main() { Sleep(20000); // enough time to switch windows and position the mouse pointer mouse_event(MOUSEEVENTF_HWHEEL, 0, 0, 120, 0); return 0; } 

滚动我选择的Firefox页面的权利。 必须选择窗口,鼠标指针必须在页面上。 我用鼠标启用了。 也可以在测试时关闭鼠标(使用鼠标本身的开关),结果是一样的。 我的鼠标也有水平倾斜,没有滚轮。 (Windows 7旗舰版)

编辑

有一件事要注意:程序本身需要处理消息。 火狐例如呢。 它显示了与倾斜鼠标滚轮相同的行为:页面相应地向左/向右滚动。 其他程序,如IE,似乎不处理这个消息,所以根本不滚动。 即使使用鼠标(没有任何附加软件包的Logitech Performance MX)也不会滚动。 所以,通过发送mouse_event消息,似乎没有100%的解决方案。