2013-07-19 39 views
2

我目前正在編寫一個應用程序,它允許滾動,而不用關注窗口。 我做了什麼:我創建了一個LowLevelMouseHook。如果LowLevelMouseProc收到MouseWheel消息,我正在搜索光標位置的句柄並向該句柄發送滾動消息。 掛鉤看起來是這樣的:禁止通過鉤子滾動

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); 
} 

正如你所看到的,我returing -1,如果消息爲鼠標滾輪的消息。這應該避免滾動當前聚焦的窗口(我不想滾動聚焦的窗口,我想滾動光標懸停的窗口)。問題是,它不取消滾動焦點窗口。那麼有沒有人有一個想法如何避免滾動當前聚焦的窗口?目前有兩個窗口正在滾動。一隻我的鼠標懸停在那裏,另一隻被關注。

請不要低估我的問題,給我一個機會。我非常努力,但我無法找到解決方案。

回答

0

我找到了解決方案。這非常非常簡單。在您的清單中設置<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />或以手動管理員身份啓動它,並且它可以工作:)

相關問題