标签: intercept

在X11上拦截WM_DELETE_WINDOW?

我想拦截WM_DELETE_WINDOW发布到我正在编写的应用程序(AllTray)的某些窗口选择的消息,以便我可以对其进行操作而不是接收它的应用程序.目前,我看着在GDK级别尝试此通过gdk_display_add_client_message_filter,如果有可能,但我很高兴与Xlib的解决方案,如果有一个为好; 这似乎是可能的,但我似乎并不理解我是如何成功地做到的.

目前,我有两个程序(用C编写),我试图用它来解决这个问题,第一个程序除了创建一个它知道的窗口和寄存器之外什么也没做WM_DELETE_WINDOW,第二个试图捕获该消息,但是似乎没有这样做; 它似乎没有做任何事情.我是否理解文档错误,或者我需要做些什么(或者我是否需要完全避免使用GDK)?

背景是这样的:在我重新编写AllTray之前,它的工作方式似乎是试图拦截鼠标点击X按钮本身.对于某些窗口管理器,这种方法正常工作,对于其他窗口管理器根本不起作用,而对于其他窗口管理器,用户必须手动配置它并指示AllTray关闭窗口的按钮所在的位置.我正在寻找的是一个不涉及的解决方案,LD_LIBRARY_PRELOAD它将适用于任何符合当前标准的窗口管理器/应用程序组合,并WM_DELETE_WINDOW在窗口关闭时发送ClientMessage.

更新:我还在寻找答案.我现在采取的路线是尝试重新调整窗口并自行管理,但我无法使其工作.重新定位后,我似乎无法以任何方式取回它.我可能会遗漏一些非常基本的东西,但我无法弄清楚如何让它再次出现在我自己的窗口,将它带回屏幕.

更新2:好的,所以我打了另一个砖墙.X服务器文档说在窗口的事件掩码上设置StructureNotifyMask以接收MapNotify和ReparentNotify事件.我有兴趣接收任何一个.我目前的想法是创建一个窗口,作为事件接收器,然后当我获得有趣事件的事件时,通过创建和重新创建来对它们进行操作.但是,这根本不起作用.我实际收到的唯一事件是PropertyNotify事件.因此,这条路线似乎也没有做得很好.

c linux x11 events intercept

13
推荐指数
2
解决办法
1万
查看次数

拦截Chrome扩展程序中的AJAX响应

我们正在现有系统上构建chrome扩展,以帮助完成一些任务.

它的AJAX非常强大,它比抓取html和触发事件拦截一些AJAX响应要有效得多.

示例:Frome chrome控制台,网络选项卡,您可以看到漂亮的JSON: 在此输入图像描述

Chrome扩展程序如何获得该JSON?

我尝试过WebRequest,但似乎不允许这样做.

javascript ajax google-chrome intercept google-chrome-extension

13
推荐指数
1
解决办法
5283
查看次数

IOS越狱如何拦截短信/短信

我目前正在尝试编写一个拦截文本消息的应用程序,并根据该消息的内容做出反应.我试图_receivedMessage:(struct __CKSMSRecord *)message replace:(BOOL)replace在CKSMSService类中挂钩方法,但这似乎根本没有被调用.

有人可以告诉我我必须挂钩的功能/类吗?我需要在文本消息显示并存储到数据库之前拦截它.我在IOS 5.0.1上.

真的很感激任何帮助.

sms hook jailbreak intercept ios

12
推荐指数
1
解决办法
9081
查看次数

如何管理curses中的日志记录

我使用curses为我的应用程序创建了一个简单的UI,并且还使用层次结构(logmain,logmain.child1)等在我的模块中包含日志(日志记录).

如果发生日志事件,日志将显示在我的UI中,从而破坏其外观.我还创建了一个pad(myLogPad),以便输入传入的日志,但没有成功.我如何拦截日志事件并将其打印在我的屏幕的特定区域(最后一行)?

def setupLogger(name,file_name):
logger = logging.getLogger(name)
logger.setLevel(logging.DEBUG)
#formatter = logging.Formatter(
#    "%(asctime)s %(threadName)-11s %(levelname)-10s %(message)s")
formatter = logging.Formatter('%(asctime) -25s - %(name) -15s - %(levelname) -10s - %(message)s')
formatterDisplay = logging.Formatter('%(asctime)-8s|%(name)-12s|%(levelname)-6s|%(message)-s', '%H:%M:%S')
# Alternative formatting available on python 3.2+:
# formatter = logging.Formatter(
#     "{asctime} {threadName:>11} {levelname} {message}", style='{')

# Log to file
filehandler = logging.FileHandler(file_name, 'w')

filehandler.setFormatter(formatter)
logger.addHandler(filehandler)

# Log to stdout too
streamhandler = logging.StreamHandler()

streamhandler.setFormatter(formatterDisplay)
logger.addHandler(streamhandler)
Run Code Online (Sandbox Code Playgroud)

我尝试在streamhandler = logging.StreamHandler()中传递mylog pad但没有成功.任何的想法?谢谢

python curses logging intercept

12
推荐指数
2
解决办法
2133
查看次数

在Python中拦截切片操作

我想模仿一个普通的python列表,除非通过切片添加或删除元素,我想"保存"列表.这可能吗?这是我的尝试,但它永远不会打印"保存".

class InterceptedList(list):

    def addSave(func):
        def newfunc(self, *args):
            func(self, *args)
            print 'saving'
        return newfunc

    __setslice__ = addSave(list.__setslice__)
    __delslice__ = addSave(list.__delslice__)

>>> l = InterceptedList()
>>> l.extend([1,2,3,4])
>>> l
[1, 2, 3, 4]
>>> l[3:] = [5] # note: 'saving' is not printed
>>> l
[1, 2, 3, 5]
Run Code Online (Sandbox Code Playgroud)

但这对于其他的方法,如工作appendextend,只是不适合切片操作.

编辑:真正的问题是我使用的是Jython而不是Python而忘了它.对这个问题的评论是正确的.这段代码在Python(2.6)中运行良好.但是,代码和答案都适用于Jython.

python methods jython slice intercept

10
推荐指数
3
解决办法
2183
查看次数

使用jQuery,我如何暂时拦截超链接点击事件?

这个问题涉及联盟营销,但实际上是关于在超链接到其他站点之前拦截超链接的一般性问题,您可以将访问者活动记录到数据库.

我的联盟营销客户有一个非常好的问题.想象一下,在给定种子关键字的情况下,您可以通过其API从亚马逊撤回产品.现在假设访问者点击其中一个产品在亚马逊上查看它.该产品的URL可能如下所示(这只是一个演示):

http://www.amazon.com/dp/B0042RU3Y0/?tag=xxxxxxxxxxxxxxxx-20

但是猜猜那有什么不对?它没有传递种子关键字.因此,我们不知道哪个种子关键字最有效.相反,她希望我们能够通过以下内容然后以某种方式跟踪:

http://www.amazon.com/dp/B0042RU3Y0/?tag=xxxxxxxxxxxxxxxx-20&seed=laptops

我没有看到任何亚马逊文档,我们可以通过额外参数,然后跟踪他们通过过滤器的报告.

因此,我唯一能想到的是我们需要在点击亚马逊之前捕获点击.换句话说,在该事件冒泡并执行之前,在jQuery中我可以先拦截它,解析该超链接的href URL,添加这个额外的种子关键字信息,通过AJAX将其发送回PHP页面和数据库表,然后释放该click事件,以便执行它并且浏览器转到Amazon.

有谁知道这是如何在jQuery中完成的?我知道AJAX部分 - 只是没有抓取点击的点击拦截部分,然后释放它.

jquery click intercept amazon-product-api jquery-events

10
推荐指数
2
解决办法
2万
查看次数

拦截文件系统系统调用

我正在编写一个应用程序,我需要拦截一些文件系统系统调用,例如.断开链接.我想保存一些文件说abc.如果用户删除了该文件,那么我需要将其复制到其他地方.因此,在删除abc之前,我需要取消链接以调用我的代码,以便我可以保存它.我已经完成了与拦截系统调用相关的线程,但像LD_PRELOAD这样的方法在我的情况下不起作用,因为我希望这是安全的并在内核中实现,所以这个方法不会有用.事件发生后inotify通知我无法保存它.你能建议任何这样的方法.我想在内核模块中实现它,而不是修改内核代码本身.格雷厄姆·李建议的另一种方法,我曾想过这种方法,但它有一些问题,我需要所有文件的硬链接镜像它不占用空间但仍然可能有问题,因为我必须反复镜像驱动器以保持我的镜像到日期,它也不会工作跨分区和分区不支持链接所以我想要一个解决方案,通过它我可以挂钩到文件/目录,然后观察更改而不是重复扫描.我还想添加对修改文件的写入支持,我不能使用硬链接.我想通过替换系统调用拦截系统调用,但我还没有找到任何在linux> 3.0中执行此操作的方法.请提出一些方法.

linux filesystems system-calls kernel-module intercept

10
推荐指数
1
解决办法
5457
查看次数

Jetpack Compose 拦截子布局中的捏合/缩放

我想要一个包含行列的框,其中填充了更多子项,这些子项接受单击(“CL”)和长按(“LO”)以进行缩放和拖动。使用pointerInputwithdetectTransforgestures我可以根据需要改变子布局。

var zoom by remember { mutableStateOf(1f) }
var offset by remember { mutableStateOf(Offset.Zero) }

val outer = (1..60).toList().chunked(6)

Box(Modifier
.fillMaxSize()
.pointerInput(Unit) {

    //zoom in/out and move around
    detectTransformGestures { gestureCentroid, gesturePan, gestureZoom, _ ->
        val oldScale = zoom
        val newScale = (zoom * gestureZoom).coerceIn(0.5f..5f)
        offset =
            (offset + gestureCentroid / oldScale) - (gestureCentroid / newScale + gesturePan / oldScale)
        zoom = newScale
    }
}) {

    Box(
        Modifier

            .graphicsLayer {
                translationX = -offset.x * zoom
                translationY …
Run Code Online (Sandbox Code Playgroud)

intercept kotlin pinchzoom android-jetpack-compose android-jetpack-compose-gesture

9
推荐指数
1
解决办法
1347
查看次数

如何拦截来自网页的每个AJAX请求

我需要拦截来自页面的所有ajax请求的方法.所以我需要一些包装器来将我的数据添加到所有用户请求中.

javascript ajax wrapper intercept

7
推荐指数
1
解决办法
4706
查看次数

如何拦截(检测)粘贴命令到TMemo?

如何在将文本粘贴到TMemo之前捕获粘贴命令并更改剪贴板的文本,但是,粘贴后,剪贴板中的文本必须与更改之前相同?

例如,剪贴板上有文字'简单问题',TMemo中的文字是'СимплeQуeстиoн',之后剪贴板中的文字就像更改之前的'简单问题'.

delphi paste detect memo intercept

7
推荐指数
2
解决办法
4659
查看次数