问题标签 [postmessage]

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 投票
4 回答
5357 浏览

c - 哪个更快:SetEvent、SendMessage、PostMessage

环境:Win32、C/C++

例如,所有三个 (3) 都可用于线程向 main() 发出信号,表明它已完成操作。

但哪一个是最快的信号呢?

唔...

0 投票
6 回答
3251 浏览

delphi - 将 WM_COMMAND 发送到 TMenuItem

在我的 Delphi 表单的 OnShow 方法中,我确定一旦打开表单就必须自动打开一个对话框 - 我应该能够通过模拟对菜单项的单击来做到这一点。

但是,调用 menuitem.Click 在主窗体打开之前会弹出对话框——这不是我想要的。

我希望这应该做我想做的事,但我找不到要为“wparam”传递哪些参数以将点击发送到我的菜单项。

MSDN WM_COMMAND 文档讨论了 IDM_* 标识符,但它在 Delphi 中是如何出现的?

0 投票
3 回答
21218 浏览

c++ - 如何通过 PostMessage 发送字符串?

在我的应用程序中,我想从不同的线程向对话框发送消息。我想将 std::exception 派生类引用传递给对话框。

像这样的东西:

我想在我的对话框中接收消息并显示其中的错误 the_exception.error_string()

我想通过std::string the_exception.error_string()使用 PostMessage 也可以。

0 投票
4 回答
1465 浏览

javascript - 您如何在 Web Worker 中对对象进行编码以使其通过 postMessage 传递?

在内部,Firefox 将对通过 postMessage 传入和传出 Web Worker 的对象进行 JSON 编码。但是,这仅适用于 Firefox (3.6+) 的 Trunk 版本,不适用于 Firefox 3.5,因此问题实际上是如何向当前平台添加对该操作的向后支持。window.atob() 和 window.btoa() 方法之前曾被建议过,但可惜这些方法在线程内部不可用,因为它们无法访问 DOM。

Mozilla 在其开发者 wiki 上公开声明了这一点,但社区中的许多人已经注意到这种情况发生了。查看 ejohn 的博客测试:http ://ejohn.org/files/bugs/postMessage/

我已经验证了这种情况也是如此,在 3.5 中,它只传递字符串,而在 3.6 中将传递对象。

0 投票
1 回答
662 浏览

winapi - PostThreadMessage 失败

我创建了一个 UI 线程。我正在向 UI 线程发布消息,该线程会将数据写入文件。

我正在使用PostThreadMessageAPI 将消息发布到用户线程。我的问题是它没有写出我发布的所有数据。例如,如果我发布 100 个数据,它会在每次执行时随机写入 3 或 98 个变化。不会为每条消息调用 Postdata 的处理程序。

的返回值为PostThreadMessage成功。

0 投票
2 回答
1640 浏览

winapi - PostMessage 优先?

是否可以优先处理使用PostMessage(或任何其他相关方法)发送的消息?

例如, IIRCWM_PAINT消息仅在队列中没有其他消息时才被处理。是否可以使用自定义消息实现类似的行为?

如果我使用WM_PAINT特殊参数将自定义消息传递到窗口(我控制 WndProc),它会有类似的行为吗?

0 投票
1 回答
3338 浏览

c# - SendMessage 的问题

我正在使用 C# 开发一个应用程序,它具有与 Windows 中类似的复制、粘贴功能。我添加了菜单项并与相应的应用程序链接。

请查看下图以获得更多想法。

添加到 shell 菜单的项目 http://softwaregenius.net/myimages/menu.jpg

就像我们在 Windows 资源管理器中选择多个项目一样,您需要选择多个文件和/或文件夹,然后选择 OS Util->FastCopy。打开一个表格,如下图所示

FastCopy 上显示的表格 http://softwaregenius.net/myimages/fastcopy1.jpg

该应用程序运行良好。这里的主要问题是,在选择文件后,所有这些文件都在各自的软件中打开。也就是说,如果我选择了 Word 文档,则文件名将添加到 FastCopy 表单中,但也会在 Word 中打开。

当我调查时,我发现这个问题是由 SendMessage 引起的。我必须使用 PostMessage 而不是 SendMessage。但是当我这样做时,应用程序无法正常工作。

下面是我在 C# 2005 中的主要功能编码

}


以下是表单中 WndProc 和其他代码的副本

公共部分类 frmFastCopy : Form { delegate void AddItemToListDelegate(string itm);


这是 NativeCode 类

我知道你们是天才。有人可以告诉我应该在哪里更改应该打开选定的文件,或者更确切地说我应该如何使用 postmessage。

感谢您分享您宝贵的时间。

问候

伊尔凡

0 投票
2 回答
6533 浏览

c# - PostMessage 无法传递字符串 C#

这是我的原型:

以下是我的使用方式:

在另一个线程中,我可以截获此消息,但是当我尝试使用以下命令让 bob 回来时:

我没有在 str 中得到 bob。

我认为这一定是因为我在一个线程的堆栈上引用了“bob”字符串,并且该引用在另一个线程的堆栈中绝对没有意义。但如果是这样的话,这些 wparam 和 lparam 指针真的只用于在同一个线程中传递的消息吗?

编辑* 更正:通过线程我的意思是进程。这是在进程而不是线程之间传递字符串的问题。

0 投票
7 回答
78250 浏览

javascript - JavaScript; 具有相同来源的选项卡/窗口之间的通信

我有两个窗口:窗口 A 和窗口 B。

  • 窗口 A 和窗口 B 具有相同的域
  • 窗口 A 和窗口 B 没有任何父窗口。
  1. 窗口 A 是否有可能获得窗口 B 的引用?
  2. 让窗口 A 通知窗口 B 的最优雅的方法是什么?(包括新的 HTML5 规范)

我知道这样做的两种方法:

  • 服务器消息传递:窗口 B 定期询问服务器窗口 A 是否通知了某些内容
  • 通过本地数据发送消息 (HTML5):当窗口 A 想要通知某事它更改了本地数据时,窗口 B 会定期检查本地数据是否有任何更改。

但这两种方式都不是那么优雅。

例如,最好获取窗口 B 的引用并使用 window.postMessage() (HTML5)

最终目标是制作类似于 Facebook 的东西,如果您打开四个 Facebook 选项卡并在一个选项卡中聊天,则每个 Facebook 选项卡中的聊天都是最新的,这很整洁!

0 投票
4 回答
2934 浏览

c# - 是否可以将密钥/发布消息直接发送到 HtmlElement 而不是 Web 浏览器控件?

我想直接将键发送到 ac# Web 浏览器控件元素,而不仅仅是具有正确焦点的窗口。

现在我可以使用 PostMessage 和 documentHandle 发送一个密钥,并像这样聚焦

即伪代码

我想知道是否有人知道能够在后台执行此操作的任何方法,以便焦点不在元素上。基本上有一种方法可以将 IntPtr 获取到 HtmlElement 本身,而不是在 PostMessage 或 SendKeys API 而不是浏览器句柄/ptr 中使用它。