问题标签 [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.
c - 哪个更快:SetEvent、SendMessage、PostMessage
环境:Win32、C/C++
例如,所有三个 (3) 都可用于线程向 main() 发出信号,表明它已完成操作。
但哪一个是最快的信号呢?
唔...
delphi - 将 WM_COMMAND 发送到 TMenuItem
在我的 Delphi 表单的 OnShow 方法中,我确定一旦打开表单就必须自动打开一个对话框 - 我应该能够通过模拟对菜单项的单击来做到这一点。
但是,调用 menuitem.Click 在主窗体打开之前会弹出对话框——这不是我想要的。
我希望这应该做我想做的事,但我找不到要为“wparam”传递哪些参数以将点击发送到我的菜单项。
MSDN WM_COMMAND 文档讨论了 IDM_* 标识符,但它在 Delphi 中是如何出现的?
c++ - 如何通过 PostMessage 发送字符串?
在我的应用程序中,我想从不同的线程向对话框发送消息。我想将 std::exception 派生类引用传递给对话框。
像这样的东西:
我想在我的对话框中接收消息并显示其中的错误 the_exception.error_string()
我想通过std::string the_exception.error_string()
使用 PostMessage 也可以。
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 中将传递对象。
winapi - PostThreadMessage 失败
我创建了一个 UI 线程。我正在向 UI 线程发布消息,该线程会将数据写入文件。
我正在使用PostThreadMessage
API 将消息发布到用户线程。我的问题是它没有写出我发布的所有数据。例如,如果我发布 100 个数据,它会在每次执行时随机写入 3 或 98 个变化。不会为每条消息调用 Postdata 的处理程序。
的返回值为PostThreadMessage
成功。
winapi - PostMessage 优先?
是否可以优先处理使用PostMessage
(或任何其他相关方法)发送的消息?
例如, IIRCWM_PAINT
消息仅在队列中没有其他消息时才被处理。是否可以使用自定义消息实现类似的行为?
如果我使用WM_PAINT
特殊参数将自定义消息传递到窗口(我控制 WndProc),它会有类似的行为吗?
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。
感谢您分享您宝贵的时间。
问候
伊尔凡
c# - PostMessage 无法传递字符串 C#
这是我的原型:
以下是我的使用方式:
在另一个线程中,我可以截获此消息,但是当我尝试使用以下命令让 bob 回来时:
我没有在 str 中得到 bob。
我认为这一定是因为我在一个线程的堆栈上引用了“bob”字符串,并且该引用在另一个线程的堆栈中绝对没有意义。但如果是这样的话,这些 wparam 和 lparam 指针真的只用于在同一个线程中传递的消息吗?
编辑* 更正:通过线程我的意思是进程。这是在进程而不是线程之间传递字符串的问题。
javascript - JavaScript; 具有相同来源的选项卡/窗口之间的通信
我有两个窗口:窗口 A 和窗口 B。
- 窗口 A 和窗口 B 具有相同的域
- 窗口 A 和窗口 B 没有任何父窗口。
- 窗口 A 是否有可能获得窗口 B 的引用?
- 让窗口 A 通知窗口 B 的最优雅的方法是什么?(包括新的 HTML5 规范)
我知道这样做的两种方法:
- 服务器消息传递:窗口 B 定期询问服务器窗口 A 是否通知了某些内容
- 通过本地数据发送消息 (HTML5):当窗口 A 想要通知某事它更改了本地数据时,窗口 B 会定期检查本地数据是否有任何更改。
但这两种方式都不是那么优雅。
例如,最好获取窗口 B 的引用并使用 window.postMessage() (HTML5)
最终目标是制作类似于 Facebook 的东西,如果您打开四个 Facebook 选项卡并在一个选项卡中聊天,则每个 Facebook 选项卡中的聊天都是最新的,这很整洁!
c# - 是否可以将密钥/发布消息直接发送到 HtmlElement 而不是 Web 浏览器控件?
我想直接将键发送到 ac# Web 浏览器控件元素,而不仅仅是具有正确焦点的窗口。
现在我可以使用 PostMessage 和 documentHandle 发送一个密钥,并像这样聚焦
即伪代码
我想知道是否有人知道能够在后台执行此操作的任何方法,以便焦点不在元素上。基本上有一种方法可以将 IntPtr 获取到 HtmlElement 本身,而不是在 PostMessage 或 SendKeys API 而不是浏览器句柄/ptr 中使用它。