Articles of 钩子

如何在Linux上使用input子系统来获取键盘事件

我正在用C写一个Linux程序,我需要截取某些键盘笔划。 使用input子系统(读/写/ dev /input/事件X),我可以接收键盘笔画(使用“读取”function)或模拟键盘笔画(使用“写入”function)。 当使用“读”function时,我可以捕捉用户的键盘笔画,但这个事件是传播的,我不知道如何使用它。

Linux X11 – 全局键盘钩子

是否可以(或如何)创build一个在Windows(SetWindowsHookEx())中像全局钩子一样工作的机制(在Linux X11,C ++中)? 我希望能够抓住关键事件,但有可能进一步传播 。 我试图使用XGrabKey解决scheme(就像在xbindkeys中 ),但是当我设置捕获关键事件,这个事件是“消耗”。 这个机制的要求如下: 全球/全系统 – 捕捉事件,不pipe重点窗口如何 “抓住”和“通过”的可能性 它一定很快 示例代码如下所示: bool myFlagIsSet = false; XEvent event; while (true) { while (XPending(display) > 0) { usleep(SLEEP_TIME); } XNextEvent(display, &event); switch (e.type) { case KeyPress: if (myFlagIsSet) { //do not propagate } // propagate break; case KeyRelease: if (myFlagIsSet) { //do not propagate […]

活动窗口上是否有Windows系统事件更改?

我正在开发的桌面应用程序需要知道在应用程序运行时哪些窗口处于活动状态。 目前它每250毫秒执行GetForegroundWindow()调用( user32.dll )。 这个方法不是很准确。 是否有任何Windows(WINAPI?)事件每次激活(聚焦)窗口更改时触发? 我想订阅我的callback函数。 谢谢。

我怎么能拦截Linux系统调用?

除了LD_PRELOAD技巧和Linux内核模块,用你提供的系统调用代替某个系统调用,有没有可能拦截一个系统调用(例如打开),以便在它到达实际打开之前首先通过你的函数?

SetWindowsHookEx,KeyboardProc和非静态成员

我正在创build一个键盘钩子,其中KeyboardProc是一个类CWidget的静态成员。 class CWidget { static LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam ); }; 我想在CWidget :: KeyboardProc中调用CWidget的非静态成员。 什么是最好的办法呢? KeyboardProc没有任何32位的DWORD,我可以通过'这个'指针。

以编程方式设置标题栏和边框颜色

我试图以编程方式更改我的应用程序的标题栏和边框颜色。 我尝试了很多东西,但没有成功,并决定在系统范围内改变这些颜色。 因为在我的应用程序运行时更改标题栏和边框颜色也是可以接受的,并且在我的应用程序结束时还原它们。 (托pipe环境,运行一小组应用程序) 是否有可能dynamic地改变这些颜色(全过程,或系统范围内,除非过程范围内的变化是可能的)? 你能build议任何方式来实现这一目标吗? 我尝试了类似下面的内容,但是它没有做我想做的事情: int aElements[2] = {COLOR_WINDOW, COLOR_ACTIVECAPTION}; DWORD aOldColors[2]; DWORD aNewColors[2]; aOldColors[0] = GetSysColor(aElements[0]); aOldColors[1] = GetSysColor(aElements[1]); aNewColors[0] = RGB(0x80, 0x80, 0x80); // light gray aNewColors[1] = RGB(0x80, 0x00, 0x80); // dark purple SetSysColors(2, aElements, aNewColors); SetSysColors(2, aElements, aOldColors); 提前致谢 编辑 这正是我想要的:

我怎样才能挂钩在C / C + +的Windowsfunction?

如果我有一个函数foo() ,窗口已经在kernel32.dll中实现,它总是返回true,我可以有我的程序:“bar.exe”钩/绕道Windowsfunction,并使所有进程返回false? 所以,如果我的svchost,例如,调用foo() ,它将返回false而不是true。 对于当前正在运行的所有其他进程,也应该采取同样的行动 如果是这样,怎么样? 我想我正在寻找一个全系统的钩子什么的。

我如何挂钩到Windows中的其他程序?

任何人都可以解释一个程序如何钩入和修改Windows中的其他程序的行为? 这怎么可能? 不要Windows程序保护自己的其他程序进入他们的记忆等? (我不知道内部是如何工作的,所以我只是说“进入他们的记忆” – 我敢打赌它比这更复杂。) 像Windows 7的现代Windows还允许它吗? 谢谢,Boda Cydo

从C ++挂钩到Windows文件复制API

我需要钩住复制文件,以便在恶意文件被复制时停止进程。 我看到一个由猫人做的问题 从C#钩入Windows文件复制API 他提到在c ++中有这个问题的解决scheme。 我正在使用embarcadero c ++ builder(非MFC)。 这个解决scheme适用于c ++ builder吗?如果可以的话,任何人都可以发布这个链接,或者给我一个关于如何在C ++中挂载copyfile的提示?

如何识别应用程序意图执行\运行文件?

当文件将被执行或由应用程序运行时,我需要识别并触发一个事件。 我知道我可以通过挂钩Windows程序来做到这一点,但我不知道Windows的程序或事件是什么情况。 例如,当一个autorun文件要执行,我的应用程序应该识别它,就像一个防病毒应用程序。 我不确定钩子是否对我的目的有用,如果解决scheme没有挂钩,请给我一个真正的解决scheme。