草庐IT

c++ - 低级鼠标钩子(Hook) - 鼠标在断点处卡住

我想自己绘制和移动我的窗口(使用chromium嵌入式框架)。为此,我需要在鼠标移出窗口时进行全局回调-所以我安装了一个低级鼠标钩子(Hook):hMouseLLHook=SetWindowsHookEx(WH_MOUSE_LL,(HOOKPROC)mouseHookProc,hInstance,NULL);钩子(Hook)简单地抓取鼠标事件并调用“CallNextHookEx”。这里没有问题,一切都按预期进行。我现在的问题是:如果调试器中断或抛出异常,我就不能再移动鼠标了。我尝试在另一个线程中处理钩子(Hook),如下所示:HANDLEmouseProcHandle=CreateTh

c - c中的全局键盘 Hook

我想写一个全局键盘钩子(Hook)来禁止任务切换。当我用谷歌搜索时,我在c#、cpp(和delphi)中找到了很多代码,但我需要一些关于钩子(Hook)的基本概念(最好是例子在C中)。因此,请建议可以帮助我从C的角度理解事物的资源和链接。PS:我找到了一个不错的workingexample(适用于winXP和旧版本),但是当我尝试编译代码时,它给了我:我尝试在所有header中搜索“IDC_”常量(MinGWgcc安装附带的默认header和开发人员提供的header),但没有运气......如果有人可以编译代码并使其运行请帮助我。我没有在这里上传源代码本身,因为有一些头文件依赖项,在

.net - 是否可以从 .NET 中的全局键盘 Hook 中确定当前用户

我想创建一个键盘和鼠标Hook,它将作为Windows服务启动。我想监控全天使用该系统的各种用户的事件。即哪些用户在什么时间活跃。是否可以确定哪个用户将接收事件?(该服务将作为单独的用户运行,因此getCurrentUser不合适) 最佳答案 不,Environment.UserName不起作用-Hook过程不会在输入接收器的上下文中调用。事实上,我认为这是不可能的-如果使用.NET,您无疑会使用_LLHook,它是低级Hook。在我看来,它们在Windows甚至确定哪个桌面/应用程序将接收事件之前就已执行。不过,我可能错了——我自

python - pyinstaller 不读取我的 Hook 文件并且不适用于 win32com.shell

根据pyinstaller的文档,如果您将文件命名为hook-fully.qualified.import.name.py,每当您导入匹配的时,它都会读取该文件。py文件。但是,我的脚本是这样的:importpythoncomfromwin32com.shellimportshellfromwin32comimportstoragecon...并且pyinstaller拒绝识别win32com.shell并出现以下错误:ImportError:Nomodulenamed'win32com.shell'。因此,我使用以下代码创建了hook-win32com.shell.py:hidden

c# - 在 C3 中检测全局键盘钩子(Hook)

用多种语言编写键盘记录器非常容易。这让我有点紧张,因为这些未知的小病毒不会被大多数(阅读:所有)防病毒软件检测到。我很好奇如何检测是否有进程获取了这些键。我想知道在任何给定点哪个进程正在读取我的输入。一种键盘记录器记录器。 最佳答案 这些问题有几个可用的答案ListofinstalledwindowshooksDetectingKeyboardHookswhatarethemethodstofindhookedfunctionsandapis 关于c#-在C3中检测全局键盘钩子(Hook

c++ - 单击标题栏按钮时,全局低级鼠标钩子(Hook)会导致卡住

我正在为IE编写一个附加组件。我需要在外部点击时关闭模态对话框。到目前为止,我已经使用WM_NCACTIVATE来接收这些通知,但似乎在Windows7(IE8)上我没有收到此消息(我在低完整性上运行并且我已经用spy++验证了它;它似乎当我以高完整性运行时它确实有效-奇怪的东西)。我已尝试为DeskBandUI线程使用常规鼠标Hook。除了对话框外的鼠标事件,我确实得到了所有鼠标事件。所以我转而使用全局低级鼠标钩子(Hook)(WH_MOUSE_LL)。一切正常,但由于一些非常奇怪的原因,当我单击任何一个标题栏按钮时,我会卡住5-10秒。经过一些在线研究后,我意识到这是一个常见问题,

windows - 如何检查进程是否被 Hook ?

他们是一种查看应用程序是否被Hook的方法吗?我希望能够查看应用程序是否被Hook,如果是,也许可以查看究竟是什么被Hook?我不确定这是否可能,但我想知道。我只是在寻找一个现有的应用程序来执行此操作以监视某些进程。 最佳答案 Hook函数有很多不同的方法。有些很容易检测,有些则更难。HookShark能够检测出相当多的常见hook方法。它无法检测到的是通过对象实例中的vtable替换Hook。入侵者将动态分配对象开头的vtable指针替换为指向他伪造的vtable的指针,其中要Hook的函数被重定向。外部程序无法检测到这一点,因为

windows - Git Hook 未在 Windows 上运行

我刚刚开始使用钩子(Hook),并且在使用git提交时遇到了一些简单运行脚本的问题。当使用从bash终端运行时,脚本完全按预期工作bashpre-commit命令。但是当用git提交时它根本不运行。文件位于C:/path/to/my/project/.git/hooks/pre-commit,文件内容为:#!/bin/bashcd../cd../echo"pre-commitstart"ifpy-munittestdiscover2>&1|grep-q"FAILED";thenecho"Test(s)FAILED"exit1fiecho"pre-commitend"我已经尝试在终端中运

windows - Git 更新后 Hook 无法 pull

我目前正在按照here所述设置一个git模式.有问题的服务器正在运行WindowsServer2008R2,使用copSSH和msysGit。它的Gist是一对git存储库:一个被推送到的裸存储库,然后是另一个包含实时应用程序的非裸存储库。被推送到的repo包含一个更新后的Hook,如下所示:echoecho"****PushingdatatoLiveServer."echocd/cygdrive/c/Repositories/Live||exitunsetGIT_DIRgitpullhubmasterexecgit-update-server-info注意:Live是non-bare

windows - 如何 Hook 我自己进程的所有操作系统调用?

我需要劫持我自己进程的所有操作系统调用。我无法重写代码,因为它部分不是我的代码(插件)。我需要能够在特定系统调用的实现中决定是否要调用原始实现。操作系统首先是windowsxp及更高版本。稍后的osx10.5和更高版本将随之而来。从32位版本的Windows开始,之后所有操作系统也将支持64位版本。我找到了很多关于Hook其他进程的文档和工具,但我希望我的工作简单得多,我希望能得到一些源代码。提前致谢,Bernd。 最佳答案 有许多Hook库可以让您执行此操作,例如Windows上的Detours或madCodeHook。毫无疑问,