问题标签 [intercept]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
449 浏览

.net - 如何拦截 Boo 中的方法调用?

Ruby 有method_missing,Python 有getattr。Boo 是否提供了一些我可以用来拦截方法调用的东西?

0 投票
4 回答
14058 浏览

c - 在 X11 上拦截 WM_DELETE_WINDOW?

我想截获WM_DELETE_WINDOW发布到我正在编写的应用程序(AllTray)的特定窗口选择的消息,以便我可以对其进行操作而不是应用程序接收它。如果可能的gdk_display_add_client_message_filter话,我目前正在考虑在 GDK 级别尝试这个,但如果有一个 Xlib 解决方案,我会很高兴;这似乎是可能的,但我似乎并不理解我如何成功地做到这一点。

目前,我有两个程序(用 C 编写),我试图用它们来解决这个问题,第一个程序什么都不做,只是创建一个窗口并注册它知道的WM_DELETE_WINDOW第二个程序试图捕获该消息,但是似乎没有这样做;它似乎什么也没做。我对此文档的理解是错误的,还是我需要做一些额外的事情(或者我是否需要完全避免为此使用 GDK)?

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

更新:我仍在寻找答案。我目前采取的路线是尝试重新设置窗口并自己管理它,但我无法让它工作。重生后,我似乎无法以任何方式找回它。我可能遗漏了一些非常基本的东西,但我不知道如何真正让它再次出现在我自己的窗口中,以将其重新显示在屏幕上。

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

0 投票
4 回答
2471 浏览

python - 在 Python 中拦截切片操作

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

这确实适用于其他方法,例如appendand extend,但不适用于切片操作。

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

0 投票
1 回答
795 浏览

groovy - 如何在 Groovy 中拦截此构造函数调用?

在脚本中,方法接收 File 类型的参数,并将其发送给 File 的构造函数。这是因为 File 没有将另一个文件作为参数的构造函数。

如何拦截此调用,并将参数修改为parameter.absolutePath

例如 :

如果不能这样做,我怎么能添加这个构造函数:

0 投票
2 回答
1604 浏览

printing - 有什么方法可以拦截本地 Windows XP 机器上的打印作业?

最好使用像 Perl 或 Python 这样的脚本语言,但如果我必须走编译路线,那就这样吧。

基本上我想要做的是对我公司的邮件合并系统进行补充。目前,我们使用的软件导出的邮件合并字段选择相当有限,但如果我们能够以某种方式将数据库查询的结果合并到信件中,我们可以完成更多工作(不幸的是,Word 没有提供足够的灵活性数据库查询来完成此任务)。我们使用的系统会自动将其信件发送到默认打印机(它是对等打印机,没有打印服务器)。我想创建一个可以充当中间人的程序。理想情况下,它将检测何时触发打印作业,捕获发送的文档,打开它,从自己的查询中插入额外的数据,然后将新版本发送到打印机。

我有两个问题

  1. 这甚至可能吗,如果可以,我从哪里开始?
  2. 一个人在合理的时间范围内完成是否可行?请记住,我不是专业的程序员,我是系统管理员类型的人 =P
0 投票
1 回答
2392 浏览

blackberry - 在黑莓中拦截拨出电话

我们正在寻找一种方法来执行以下操作:

  • BB 用户输入号码(或选择联系人并点击“发送”)
  • 我们在后台的应用程序检测到呼叫事件
  • 我们的应用程序做了一些事情(例如阻止呼叫/拨打其他号码等)

这可以做到吗?它可以对用户透明地完成(即没有对话或用户参与)吗?我应该查看哪些 API?

谢谢

0 投票
5 回答
9186 浏览

c# - 如何拦截Http流量

我正在尝试开发一个 C# 应用程序,它将拦截传出的 Http 请求并将结果返回给旧系统。我们有一个遗留系统向已停止的 Web 服务发出 Http 请求。我需要拦截发出的请求并将其发送到新的 Web 服务。当响应返回时,我需要对其进行操作,然后将其发送到遗留系统。所有代码都需要位于客户端计算机上。我认为类似于 http listener 的东西会起作用,但我没有得到任何帮助,任何建议都将不胜感激。

0 投票
1 回答
1265 浏览

qt - Qt,调用 QPainter::drawText() 时获取文本

我有一个 QPainter 对象,并且希望获得在调用 QPainter::drawText 时绘制的字符串,就像我可以将插槽连接到该信号(它不存在,所以我不能)一样。最好的方法是什么?我已经阅读了一些关于使用 setProperty 方法将 drawText 方法重定向到自定义方法并将其传递给 drawText 的指针的内容,但我从未尝试过,这对我来说似乎有点矫枉过正......任何人都有更好的想法如何获取drawText绘制的文本字符串?

编辑:如果不是从画家那里获取文本,我们也可以从 PaintEngine 获取它

任何帮助表示赞赏,谢谢

0 投票
4 回答
477 浏览

c# - 如何将某些按键转换为其他按键?

我对考试作弊有个好主意。我的学校使用非常旧的 IDE(想想 Turbo Pascal、Turbo C++ 和其他 80 年代的),我想做的是:

  • 在后台启动我的程序

  • 拦截按键,而不是将它们直接发送到屏幕,我想从预先配置的文本文件中读取一个字符,并将其作为按下的键发送。这样,无论您要写什么,该文件中的文本都会写在屏幕上。

我找到了Stephen Toub 的关于记录密钥的文章,我认为它将作为构建这个“ tool”的良好开端。有没有比拦截系统中按下的所有键更好的替代方法SetWindowsHookEx?该代码是否会被防病毒软件标记为可疑程序?如果是这样,我还有什么可以用来完成此操作而不会被防病毒软件标记的吗?是否需要管理员权限?

我知道你们中的一些人会说,如果我对学习的兴趣和对避免学习的兴趣一样多,我会做得很好,但我想尝试一下。

编辑:我添加了一个赏金,我对一些捕获击键的技术感兴趣(我对低级挂钩或高级东西不感兴趣 - 基本的很好),主要是方法名称和一些文档链接。我还想知道它们是否会在防病毒软件中显示为恶意软件。

0 投票
10 回答
13750 浏览

objective-c - Objective-C 中的拦截方法调用

我可以拦截 Objective-C 中的方法调用吗?如何?

编辑: Mark Powell的回答给了我一个部分解决方案,即-forwardInvocation方法。但是文档指出 -forwardInvocation 仅在向对象发送没有相应方法的消息时才调用。我希望在所有情况下都可以调用一个方法,即使接收者确实有那个选择器。