问题标签 [messages]

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

delphi - 如何以编程方式在另一个应用程序中选择上下文菜单项?

目标应用程序是用 Delphi(win32 不是 .NET)编写的,并且是闭源的。

我要调用的操作称为复制,但没有明显的键盘快捷键。(Ctrl+Insert 做错事,Ctrl+C 什么也不做)

我可以找到我的目标HWND并说服它打开上下文菜单(它会响应WM_RBUTTONDOWN/UPnot WM_CONTEXTMENU)。从菜单HWND中我什至可以通过获取菜单句柄MN_GETHMENU并找到我想要的菜单项。我只是不知道如何“选择”项目的细节。菜单是“无模式的”并没有帮助,即。它HWND不属于自己,所以我不知道许多隐藏TPUtilWindow窗口中的哪个是真正的所有者 - 否则我可能只是发送它WM_COMMAND而不弹出菜单,这将是可取的。

尽管我确信它有助于各种黑客攻击,但我不希望将代码注入目标进程。

接受任何语言的答案。

0 投票
4 回答
3998 浏览

c++ - 我需要一个不会弄乱我打开的窗口的消息泵

我的应用程序(我正在处理的安装程序的引导应用程序需要启动一些其他应用程序(我的安装程序和第三方安装程序,用于我的安装程序的先决条件)并等待它们完成。为了允许 GUI 进行屏幕更新在等待应用程序完成时,我使用 Visual Studio 文档中关于空闲循环处理的“MFC 兼容”示例作为指导,在等待循环中放置了一个消息泵。我的代码(位于 CWinApp 的成员函数中-派生类)如下:

我遇到的问题是,在某些时候,此消息泵似乎释放了我在运行此代码时打开的窗口上的窗口和菜单句柄。我在调试器中进行了遍历,它从来没有进入 if (!PumpMessage()) 语句的主体,所以我不知道这里发生了什么导致窗口和菜单句柄消失南。如果我没有消息泵,一切正常,只是在等待循环运行时 GUI 无法自行更新。

有没有人对如何使这项工作有任何想法?或者,如果 bWait 为 TRUE,我想启动一个工作线程来启动第二个应用程序,但我以前从未对线程做过任何事情,所以我需要一些关于如何在不引入同步问题等的情况下做到这一点的建议.(无论哪种情况,代码示例都将不胜感激。)

0 投票
1 回答
392 浏览

sql-server - sql服务代理功能问题

我是一名刚起步的 Web 开发人员,正在从事一个雄心勃勃的 Web 应用程序项目。

所以在做了一些研究之后,我发现了 SQL Service Broker。这似乎是我可以使用的东西,但我不确定。由于学习它需要有人投入大量时间,因此我想确保它符合我的需求。

我需要实现一个网站用户可以向网站提交文本的系统。该消息流必须是冗余的并以 FIFO 方式处理,在流的另一端,另一组用户处理消息。

现在,最后一组用户中的一个正在阅读的消息应该被锁定,这样其他人就不能同时阅读它。然后用户可以决定是否处理该消息。只有当他决定处理该消息时,才能将其从队列中删除。如果他决定不想处理该消息,则应将该消息放回队列中(在队列的末尾,或至少具有最高优先级),以便另一个用户可以阅读并决定.

这是我可以用 SQL Service Broker 实现的吗?我在错误的轨道上吗?

谢谢!

0 投票
3 回答
745 浏览

windows - 如何确定消息类型是已发送还是已发布?

我知道某些消息类型直接发送到窗口过程,而其他消息类型则发布到线程的消息队列,但我还没有找到任何方法来确定是否发送或发布消息。

MSDN 有一半的帮助;它解释了发生了什么,但它给出的例子可能并不详尽。

是否有明确的已发送消息与已发布消息列表,或确定消息类型的方法?

0 投票
2 回答
4482 浏览

vb.net - 在 Matlab、VB6 和 VB.NET 程序之间发送消息的最简单方法

我们正在将一套数据采集和分析例程从 VB6 程序升级为 VB.NET、VB6 和 Matlab 程序的混合。我们希望保持系统模块化(单独的 EXE),以便我们可以轻松创建专门的独立分析程序,而无需不断升级一个大型应用程序。当所有程序都是用 VB6 编写时,我们使用 MBInterProcess 在 EXE 之间发送消息,这对我们来说非常有效(例如,让数据采集 EXE 将最新的文件名发送到独立的数据显示程序)。不幸的是,这个 ActiveX 不能在 Matlab 或 VB.NET 中用于接收消息。我们想知道我们可以采用的最简单的字符串消息传递系统(管道、注册消息等)是什么。现在我们只是轮询看看新文件是否写入特定文件夹,这不是最好的解决方案。我们理想的解决方案不需要花费大量时间来学习 Windows 的细微差别(我们是生物学家,而不是全职程序员),并且可以在 WinXP 和 64 位版本的 Windows 中工作。

作为对查询的回应,我们将整个 Matlab 会话包装在一个具有 MBInterProcess ActiveX 控件的 VB6 程序中。这可行,但对我们来说不是一个很好的解决方案,因为它可能会将我们永远锁定在 WinXP 中(并且肯定会阻止我们使用 64 位版本的 Matlab)。最新版本的 Matlab (2009a) 可以直接访问 .NET 函数,因此我们假设一种解决方案可能是使用 .NET 库来实现跨程序的管道(或类似的东西)。我们想重新创建 MBInterProcess ActiveX 的优雅简单的语法,并拥有一段代码来侦听具有该程序的顶级 Windows 名称的消息,然后调用特定的 Matlab m 文件或 VB.NET 函数,字符串数据(例如,文件名)作为参数。

0 投票
4 回答
3827 浏览

c# - 如何在不等待事件侦听器运行的情况下触发事件?

我对 .NET (C#) 中的事件有疑问。我不得不为几种情况编写代码,其中我有一个后台任务正在运行并且我想通知主线程或控制器类发生了某些事情,例如任务完成或完成复制文件,但我没有不希望后台任务等待主线程的委托处理事件。

我想做一些类似消息传递的事情:发送消息,但谁在乎他们用它做什么。

例如:

编写一个类来依次处理多个进程,一个接一个。每个进程都需要在后台线程上运行。工作完成后,会触发一个事件并告诉控制器它已完成(假设使用 OnCompleted() 方法)

问题在于,如果控制器的事件处理程序用于启动后续进程,则先前进程的 OnComplete 方法会一直停留在调用堆栈上(永远不会完成执行),直到所有进程都完成为止。

在那种情况下,后台任务如何在不将事件引发方法保留在堆栈上的情况下通知控制器类工作已完成?

示例 2:备份程序。

后台线程运行以将每个文件复制到目标。后台需要通知UI 上次复制的文件,但不需要等待 UI 更新。相反,它只想说,“顺便说一句,这里有一些信息。现在,让我回去工作。” 事件侦听器不应阻止事件引发器的处理。

0 投票
2 回答
1064 浏览

windows - 发送到 HWND_BROADCAST 的消息会发送到其他桌面吗?

我正在尝试确定如何HWND_BROADCAST工作的一些细节。不幸的是,MSDN 没有这个值的特定页面。它只是在其他几篇文章中顺便提及,例如 forSendMessagePostMessage.

我特别想知道的是发送到HWND_BROADCAST的消息是否被与同一窗口站中的其他桌面关联的窗口接收。文档说该消息将发送到“系统中的所有顶级窗口”,但显然这不能完全正确。例如,我确信他们不会在其他登录会话中进入窗口(例如在终端服务器上)。我的猜测是它们至少仅限于调用进程的窗口站,但我不知道它们是否也仅限于调用线程的桌面(每个线程与单个桌面相关联)。

最坏的情况下,我可以编写一些代码来凭经验进行测试,但是有人碰巧知道答案吗?

0 投票
2 回答
2748 浏览

java - 在 Spring Webflow 单元测试中设置 messages.properties

我正在使用 Spring Web Flow 2.0.7,并且刚刚开始设置我的单元测试。我有我的流目录,在我的类路径中包含流 xml 文件和我的 messages.properties 文件。

它加载正常,但它似乎没有自动为流选择 messages.properties 文件,因此我的验证单元测试失败,因为它无法解析给定代码的消息。

这是异常的相关部分:

这似乎是一个相当常见的场景,使用在 messages.properties 中解析的代码来生成错误消息。那么...加载 messages.properties 文件的推荐方法是什么?

0 投票
4 回答
5052 浏览

mfc - 如何将 MFC 消息重定向到另一个对象?

在从 CWnd 派生的类的实例中,是否可以将所有 MFC 消息转发(重定向)到另一个对象,而无需为每个可能的消息编写单独的处理程序和消息映射?具体来说,我想将所有未处理的 WM_ 消息转发到另一个对象。如果这是不可能的,那么对象是否可以监听其他对象中发生的事件?如果这有助于澄清我的问题,我可以提供详细信息。

谢谢。

0 投票
1 回答
9293 浏览

visual-c++ - Visual C++:如何在代码中嵌入和显示编译时消息?

有没有办法在编译那段代码时在编译时显示的代码中嵌入一条消息?这些消息本质上是诊断性的,不应修改或中止编译过程。

(免责声明:我知道这个问题的答案。我没有在 Stack Overflow 上找到它,我认为这将是对知识库的有用补充。)