问题标签 [imessagefilter]

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 回答
1575 浏览

c# - wpf 的 IMessageFilter

我在网上找不到任何关于它的信息,那么有没有类似于 wpf 的 IMessageFilter 的界面,或者有一种方法可以将此界面与 wpf 窗口一起使用?谢谢。

0 投票
2 回答
399 浏览

c++ - WM_PAINT 和未完成的 COM 调用(ATL OOP 服务器“死锁”)

我们开发了一个 STA ATL COM OOP 服务器,几乎一切正常。我们面临一个问题:当 COM 客户端通过 Windows 消息在内部获取任何 COM 调用的结果时,可以在等待 COM 调用的应答时处理 WM_PAINT 消息(或我猜的任何其他消息)。这本身可能是一个问题,但最大的问题是,在之前的 COM 调用完成之前,对服务器的所有调用都会失败(HRESULT=0x80010005),这是一个相当大的问题,因为它在我们的应用程序中经常发生。我们无法从绘图中删除 COM 调用。

我已经对此进行了大量研究,但找不到任何关于它的内容(除了这篇2006 年的文章说明了这个问题以及一些无法在我们的案例中应用的解决方案),但我看到的不仅是 WM_PAINT危险的是,我们在任何 Windows 事件(消息)中执行的对服务器的任何调用都可能导致相同的问题。

所以基本上我们可以有不同的解决方案,但不知道要使用哪些 COM 方法或如何使用: 1- 一个等待直到最后一个 COM 调用被处理并返回值的方法 2- 一个知道在服务器和处理 COM 答案的方法(全部从客户端调用) 3- 知道我们是否可以在客户端中实现 IMessageFilter 类以及如何处理它和处理调用等。

谢谢!

0 投票
1 回答
1998 浏览

c# - 使用鼠标滚轮水平滚动 ( C# & WinAPI )

我正在创建一个逻辑来在我的表单中没有焦点(outlook 样式)的鼠标位置下滚动控件。我可以使用 IMessageFilter 实现这种行为。但是,如果按下“SHIFT”键,我将面临应用水平滚动的困难。

我应该在 //TODO 部分做什么才能使水平滚动正常工作?

0 投票
2 回答
2335 浏览

java - 如何在 Spring XML 中使用 Camel 消息过滤器 Bean

消息过滤器的 Camel文档显示了几个使用“过滤器 bean”的 Java DSL 示例,如下所示:

但是该页面没有显示如何在 Spring XML 中调用该 bean:

在上面的代码片段中,我如何连接我<filter/>的 Java bean,以及该 Java bean 需要实现/扩展什么接口?

0 投票
1 回答
703 浏览

c# - 使用 PreFilterMessage 读取条形码的问题

我的任务是从 Symbol LS2208 条码扫描仪读取条码。
扫描仪设置为默认设置,但前缀为 F13,后缀为“Enter”。使用此扫描仪模拟美式键盘。我的键盘是丹麦语,操作系统语言设置为丹麦语。
我喜欢独立于用户的区域设置。

现在我正在使用以下方法实现 IMessageFilter:

当接收到后缀“Enter”键时,使用键序列创建条形码字符串,方法GenerateBarcode如下:

我在这里处理 shift 和 altGr 键。

现在是我的问题的原因GetCharsFromKeys方法:

我正在尝试将来自条形码扫描仪的键输入转换为字符串。对于大多数常见的字符来说,它可以正常工作(上下字符和数字),并且在键盘上的数字上方找到的一些特殊字符也可以正常工作(例如'$')。

但是当使用像“12 / 34 - 56”这样的条形码进行测试时,我最终会得到输出“12 - 34 = 56”?

我认为这与美国和丹麦键盘之间的映射有关,但我不知道为什么?
有人可以帮助我进行这种转换吗?

0 投票
1 回答
374 浏览

c# - IMessageFilter.PreFilterMessage 中的 WParam 值错误

我目前正在为我的一个应用程序实现一个应用程序范围的键盘挂钩。
这是通过使用IMessageFilter覆盖该PreFilterMessage方法的实现并将其添加IMessageFilter到我的主表单来完成的。
据我测试,大多数数字和字母键都可以正常工作,但是当涉及到Keys.Left(代码 37)时,其中WParamMessage似乎包含一个错误的值(代码 39 )。
是的,我已经做了一点与Keys.KeyCode(顺便说一句是65535。这意味着它甚至不重要)。

如果有人有想法或提示为什么它适用于字母/数字键但不适用于Keys.Left我将非常感激。

代码:

0 投票
1 回答
1711 浏览

c# - 如何将鼠标滚轮消息从一个窗口重定向到另一个窗口?

WM_MOUSEWHEEL消息被发送到具有焦点的控件。我的应用程序有一个复杂的控件层次结构,其中包含其他控件的控件,其中一些是不可见的或重叠的。我希望鼠标滚轮滚动特定的ScrollableControl.

这个问题有一个捕获消息的IMessageFilter实现的答案。WM_MOUSEWHEEL这很好用,我看到消息被捕获。我尝试VerticalScroll通过更改VerticalScroll.Value. 不幸的是,有一些不良副作用,例如滚动条中的鼠标拇指与 ScrollableControl 的内容不同步。这可能是因为这项工作是在消息泵中完成的,而不是在事件处理程序中。

这篇文章描述了一种将 WM_MOUSEWHEEL 消息重新发布到另一个窗口的技术。我想实现一个IMessageFilter捕获WM_MOUSEWHEEL消息并将它们转发给指定收件人的方法。

我创建了以下IMessageFilter尝试执行此操作的内容。我可以看到转发的消息被我的过滤器捕获,然后我false从过滤器返回以告诉控件处理该消息。目标控件没有收到OnMouseWheel事件。

可以修改此过滤器以允许targetControl使用重定向消息滚动我吗?

0 投票
1 回答
69 浏览

c# - 使用 IMessageFilter 时出现 ObjectDisposedException

我最近遇到了一种情况,我有一个要拦截和处理消息的表单。第一次打开表单时一切正常,但在关闭并再次打开后,我会得到一个 ObjectDisposedException。

我终于想通了,我需要打电话

关闭表单时,否则,它会一直尝试处理已关闭表单的消息。我在这里没有看到任何解决这个问题的问题/答案,所以我想添加它以防其他人遇到同样的问题。

此外,MSDN 上的示例也没有显示删除消息过滤器。

0 投票
1 回答
1432 浏览

c# - WPF 拦截全局鼠标移动(如在 Windows 窗体中使用 IMessageFilter)

我正在将 aUserControlWindows Form转换为WPF,这是我的Windows Form工作代码:

我曾经IMessageFilter在我的应用程序中获取鼠标移动和鼠标向上事件并附加到它们。

现在,我知道IMessageFilter 在 WPF 中不可用,但是有没有一种简单的方法可以在 WPF 中记录这些简单的鼠标事件?

0 投票
1 回答
616 浏览

ios - 如何获取 imessage 扩展创建的应用程序的电话号码

我正在尝试实现一个 iMessage 扩展应用程序,我想获取我选择要使用我创建的应用程序创建的图像的号码。

如何获取我要发送此自定义消息的号码。任何想法 ?因为我无法从“MSMessage”库文件中引用的消息类中获得太多信息。

我只能访问不是我想要的 UUID。

感谢您提供的任何建议。