草庐IT

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

我目前正在编写一个允许滚动的应用程序,无需聚焦窗口。我已经做了什么:我创建了一个LowLevelMouseHook.如果LowLevelMouseProc收到MouseWheel消息,我将在光标位置搜索句柄并将滚动消息发送到该句柄。钩子(Hook)看起来像这样:LRESULTCALLBACKMouseHookCallback(intcode,WPARAMwparam,LPARAMlparam){if(code如您所见,如果消息是鼠标滚轮消息,我将返回-1。这应该避免滚动当前聚焦的窗口(我不想滚动聚焦的窗口,我想滚动光标悬停的窗口)。问题是,它不会取消滚动聚焦窗口。那么有没有人知道如何避

c++ - Windows:如何查询低级键盘 Hook 中修改键的状态?

对于usb键盘配置工具,我需要拦截所有键盘输入并检测同时按下了哪些修改键和普通键。因此,我使用了一个Windows低级钩子(Hook)(WH_KEYBOARD_LL),它工作正常,除了我无法确定是否按下了WIN键(VK_LWIN/VK_RWIN)(control/shift和alt正在工作)。我做了一个小命令行工具来显示问题:#include#includeusingnamespacestd;HHOOKhKeyboardHook;LRESULTCALLBACKLowLevelKeyboardProc(intnCode,WPARAMwParam,LPARAMlParam){if(nCod

windows - 通过 Hook (GIT,Windows,GitStack)推送后 merge 暂存存储库裸存储库

我在WindowsServer2008上安装了GitStack,并为给定的项目创建了一个裸存储库,我从本地开发环境将其推送到该存储库。我想设置一个Hook,使我的暂存环境在每次推送时自动merge推送的更改。我发布了一个以前的bash脚本,但现在已将其更新为以下内容:#!/bin/shexportGIT_WORK_TREE=F:\\inetpub\\project_name\\staging\\exportGIT_DIR=F:\\inetpub\\project_name\\staging\\.gitgitpulloriginmaster并得到以下错误信息:远程:bash.exe:警告

windows - Git 预提交 Hook 不在 Windows 上添加文件

我有一个运行mysqldump的预提交Hook来跟踪MySQL。我正在尝试将该转储添加到提交中,但由于某些原因它不会。代码:#!/bin/shrm-fdatabase.sqlexec"C:\ProgramFiles\MySQL\MySQLServer5.5\bin\mysqldump.exe"--skip-comments-uroot--password=passwordmy-database>database.sqlgitadddatabase.sql文件已创建,但未添加到提交中。在Windows7上运行TortoiseGit。 最佳答案

c++ - 鼠标锁定水平/垂直移动

我希望鼠标光标分别锁定在X或Y轴上的指定点上。我设法用低级鼠标proc和键盘proc实现了这一点(需要键盘proc作为用户希望鼠标跟随的移动的输入-垂直或水平)。但是,我的问题是-在锁定移动时,比如用F7水平-当我按下鼠标按钮或使用鼠标滚轮时,锁定移动会因为一些我无法理解的奇怪原因而被释放,我显然不想除非用户这么说(即按F6),否则它将被释放。这是代码,您可以检查它并查看我正在谈论的问题:#define_WIN32_WINNT0x0501#include#includeusingnamespacestd;boolblock=false;POINTp;HHOOKhHook,hHook2;

c++ - 键盘 Hook - 不同的语言 - C++

我正在尝试编写一个键盘记录器,但在切换语言时遇到问题。我的键盘上有希伯来语和英语。它能很好地分别识别希伯来语和英语,问题是如果我改变language(alt+shift)所以它仍然是第一语言。代码:LRESULT__declspec(dllexport)__stdcallCALLBACKKeyboardProc(intnCode,WPARAMwParam,LPARAMlParam){charch;if(((DWORD)lParam&0x40000000)&&(HC_ACTION==nCode)){if((wParam==VK_SPACE)||(wParam==VK_RETURN)||(

c# - Windows 10 是否具有 LowLevelHooksTimeout 的注册表项

我正在尝试为我在VisualStudio2015中调试C#时遇到的问题找到解决方法。当应用程序正在调试时,它会导致鼠标光标在命中断点时严重滞后。这是因为应用程序注册了鼠标和键盘的Hook。当遇到断点时,Hook正在等待输入,但在达到超时(~5秒)之前它们不会收到任何输入。因此,我在网上找到了一些解决方案,但在不重新处理Hook的情况下,没有什么是可以相对直接实现的。我尝试为LowLevelHooksTimeout添加一个注册表项,以查看是否可以让Windows在遇到断点时更快地转到下一个Hook事件,但这似乎没有什么不同。或者,使用原始输入可能是唯一的方法,但需要一些工作。有没有人遇到

windows - 使用 GetSaveFileName。我指定了 OFN_EXPLORER 标志,但总是得到旧的对话框外观,除非我避免同时使用 Hook 和模板

使用GetSaveFileName。我指定了OFN_EXPLORER标志,但我总是得到旧的对话框外观,除非我避免同时使用Hook和模板。(OPENFILENAME结构中的lpfnHook和lpfnTemplate(以及它们各自的“启用”标志))如果我避免只使用一个或另一个,我仍然会得到旧的对话框外观。我也没有尝试使用模板,但使用了钩子(Hook)......但总是从它返回TRUE(我看到提到从钩子(Hook)中“总是返回false”作为获取旧接口(interface)的一种方式)。不过,它似乎没有任何效果。编辑:添加相关代码:ofn.lStructSize=sizeof(OPENFIL

c - 监控低级 Hook [C]

有没有什么方法可以监控Windows环境中的低级键盘Hook。假设我正在制作一个试图找到键盘记录器的程序。 最佳答案 >没有官方API可以查询已安装的键盘钩子(Hook)。是的,有。(你还太小,不知道这个……)您必须阅读PEB。参见Win32apiGroup所有Windows源代码(每个api,未记录或未记录)都已被反汇编 关于c-监控低级Hook[C],我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com

windows - 使用笔记本电脑自定义按钮

我有一台LenovoY550笔记本电脑,它有一个漂亮的触摸感应条,键盘顶部有LED灯。然而,它的用法非常无用(它可以用来启动4个不同的Lenovo程序)所以我开始考虑是否可以为它编写自己的程序。但是我对这种事情没有任何经验。首先,我想知道是否有可能以任何方式在我自己的程序中使用它(捕捉触摸甚至控制灯光)。其次,我应该从哪里开始研究这个?我检查了Windows设备管理器,看看是否能在那里发现任何有用的东西,但没有成功。我只能在那里看到许多种HID设备。我想到的一件事是使用某种钩子(Hook)来使用它。那行得通吗?我真的不介意我必须使用什么语言,无论如何学习新语言都是有用的。如果可以完全控