gpt4 book ai didi

c++ - 禁用钩子(Hook)滚动

转载 作者:可可西里 更新时间:2023-11-01 10:47:24 31 4
gpt4 key购买 nike

我目前正在编写一个允许滚动的应用程序,无需聚焦窗口。我已经做了什么:我创建了一个 LowLevelMouseHook .如果 LowLevelMouseProc 收到 MouseWheel 消息,我将在光标位置搜索句柄并将滚动消息发送到该句柄。钩子(Hook)看起来像这样:

LRESULT CALLBACK MouseHookCallback(int code, WPARAM wparam, LPARAM lparam)
{
if(code < 0)
return CallNextHookEx(mouseHookInstance, code, wparam, lparam);

if(UserMouseHookCallback != NULL)
{
UserMouseHookCallback(code, wparam, lparam);//scroll the hovered window here
if(wparam == WM_MOUSEWHEEL)
return -1;
}

return CallNextHookEx(mouseHookInstance, code, wparam, lparam);
}

如您所见,如果消息是鼠标滚轮消息,我将返回 -1。这应该避免滚动当前聚焦的窗口(我不想滚动聚焦的窗口,我想滚动光标悬停的窗口)。问题是,它不会取消滚动聚焦窗口。那么有没有人知道如何避免滚动当前聚焦的窗口?目前有两个窗口正在滚动。一个我的鼠标悬停,一个聚焦。

请不要对我的问题投反对票,给我一个机会。我真的尽力了,但我找不到解决方案。

最佳答案

我找到了解决方案。这非常、非常、非常简单。设置<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />在您的 list 中或以管理员身份手动启动它并且它有效:)

关于c++ - 禁用钩子(Hook)滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17744640/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com