全局鼠标钩子:WH_MOUSE_LL, 在【 win 10 上网本】上因为太卡,运行中丢失全局鼠标钩子
一台几年前买的上网本,让我安装了一个 win 10,然后用来测试程序的时候,
发现 使用 SetWindowsHookEx(WH_MOUSE_LL, mouseHook, GetModuleHandle("user32"), 0); 创建的【全局鼠标钩子】在运行过程中(比如将鼠标移到任务栏上另的窗口上时)会莫名其妙的丢失掉。
查了一下午原因,才找到原因:在【钩子回调】函数 mouseHook() 中,因为有一个屏幕取色的操作:GetPixel(), 这玩意非常耗时,上网本硬件性能本来就很差,再运行 GetPixel(), 会更卡,直接导致失去去成功创建的【全局鼠标钩子】的控制,非正常丢失掉。
//钩子回调 - 全局鼠标钩子
LRESULT CALLBACK mouseHook(int nCode, WPARAM wParam, LPARAM lParam)
{
GetPixel()
...
}
解决方案,目前没有。