问题标签 [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 投票
1 回答
1864 浏览

c# - [C#][Win32 API] PostMessage 帮助?

我查看了站点和 MSDN 文档,但我仍然不明白 PostMessage() 的最后一个参数。

在人们询问如何使用 PostMessage 的论坛上,人们使用以下两种实现之一进行回复:

  1. PostMessage(WindowHandle, WM_KEYDOWN, KeyCode, MapVirtualKey(KeyCode, 0) << 16);
  2. PostMessage(WindowHandle, WM_KEYDOWN, KeyCode, 0);

有什么不同?为什么在某些情况下最后一个参数可以保留为 0,但在其他情况下必须“移位”以及所有这些?

只是一个快速的问题。不需要论文回复(尽管他们会非常感激)。任何见解都值得赞赏。提前致谢。

0 投票
3 回答
3176 浏览

c# - PostMessage 似乎不起作用

我正在尝试使用 PostMessage 发送选项卡键。

这是我的代码:

当我按下输入时,代码被调用,但没有任何反应。然后我按TAB,它工作正常。(所以我发送标签消息有问题。)

0 投票
1 回答
3382 浏览

javascript - 使用 Javascript、HTML5 的跨域 REST 代理

我正在编写一个服务(比如 service.com),它为在IFrames内部运行的外部应用程序提供REST API。(这些应用程序托管在 service.com 之外的域中)。

我正在为应用程序计划一个 JavaScript客户端库,以向 service.com REST API 发出纯 JavaScript 请求——基本上使用postMessage和我的 API 调用的一些临时封装来跨帧来回获取消息(来自outside-app.com IFrame --> service.com REST API,然后返回 IFrame 并返回响应)。

我的问题:是否有任何强大的通用 javascript库来完成我需要的那种跨域 REST 请求代理,或者我应该从头开始破解它?

0 投票
2 回答
18019 浏览

javascript - HTML5 Javascript postMessage API 有什么好的调试器吗?

有没有什么好的工具可以让开发人员正确调试使用postMessage在窗口之间发送的消息?

或者可能是 Firebug 的插件?

0 投票
1 回答
253 浏览

dialog - 初始化主窗口 win32 时,何时显示模态对话框的最佳时间?

我试图在 Win32 中实现这一点,但我确信同样的规则也适用于 WinForms 的世界。

问:我创建了我的主窗口,然后,当它显示时,我想显示一个模式对话框。问题是; 我怎么知道主窗口何时完全初始化并可见?也就是说,究竟什么时候是显示对话框的最佳时间?

思路:
1) 处理WM_CREATE和作为最后一步PostMessage(WM_USER_MESSAGE)。处理WM_USER_MESSAGE并显示模态对话框!
2) 处理WM_CREATE并设置一个约 300 毫秒的计时器。处理WM_TIMER,杀死计时器并显示模态对话框!
3) 处理WM_ACTIVATE,如果是第一次激活PostMessage(WM_USER_MESSAGE)。处理WM_USER_MESSAGE并显示模态对话框!
4) 处理WM_SHOWWINDOW,如果第一次显示显示模态对话框!

上述方法有效,但结果并不总是那么好。有没有更好的方法?也许以某种方式处理WM_ENTERIDLE或消息?WM_KICKIDLE

0 投票
2 回答
11060 浏览

javascript - 如何进行跨域postMessage?

postMessage的文档暗示跨域消息传递是可能的。然而:

这不是一个非常清楚的说明如何实际做到这一点。

想象两个网站:

  1. [家长] 托管在qc-a.nfshost.com
  2. [儿童] 托管在qc-b.quadhome.com

在父级中:

而且,在孩子身上:

一切都无济于事。

帮助?

0 投票
1 回答
1108 浏览

macos - OS X 上的 PostMessage() 等。向窗口发送消息

Mac OS X 上 Windows 中的 PostMessage/SendMessage 等价物是什么?

我最近开始使用 Mac 开发,我的大部分经验来自 Windows 和 nix。

我想挂钩一个窗口并模拟鼠标点击或键盘按下。此外,我希望能够找到像 GetWindowText 这样的函数或任何可以从窗口获取特定文本的函数。

0 投票
1 回答
2233 浏览

c# - 在窗口 C# 中按下虚拟键

嘿,我正在尝试在记事本中输入一条消息,而不必将其作为我的焦点窗口(前景窗口)。

这是我到目前为止所拥有的:

但这不会在记事本中输入 S。当我使用 VK_F5 时,它会显示日期/时间,而当我使用 VK_F1 时,它会显示帮助窗口但它不键入 s。

我曾考虑过使用 SendKey,但这需要我以记事本为目标。

任何帮助,将不胜感激。

谢谢。

0 投票
1 回答
1871 浏览

delphi - 在主线程(Lazarus)的上下文中执行代码

我必须在主线程的上下文中执行一些代码。我正在使用 Lazarus + FPC。我从 DLL 中的线程(如果在 linux 上是共享库)中接收到一个事件,并且我的回调函数被调用。请注意,此函数不是任何类的成员,而是附加了“cdecl”指令的独立传统函数。

我必须为收到的每条此类消息触发一个对应的属性事件处理程序。这些事件必须在主线程的上下文中传递。我知道两种这样的解决方案:

  1. 留言
  2. Application.QueueAsyncCall

第一个没问题,但它需要一个窗口句柄。由于这是一个库代码,因此没有可用的句柄。AllocateHWND 不是一个选项,因为它不是跨平台的。我知道我可以创建一个虚拟表单,但这是一个非常糟糕的解决方案

第二个工作正常,但我有一个问题,例如,在我将鼠标移动到应用程序中之前,不会处理调用。也许我做错了什么我不知道。我就像我的电话只有在消息处理开始时才被处理。但这显然是一个漫长的等待。

所以我想知道这里最好的解决方案是什么(可能是 QueueAsyncCall)以及如何确保我的消息(调用)将在可接受的时间范围内得到处理?

0 投票
3 回答
10182 浏览

c++ - MFC 数据通过 PostMessage 转发到主线程

我有一个需要重组的 C++/MFC 应用程序。该应用程序用于处理主线程上的大部分数据,因此阻塞了输入,现在我想更改它,以便所有 GUI 更新都通过 PostMessage 完成。

不幸的是,我似乎无法找到如何实现这一目标的好消息来源。

现在我正在考虑创建一个优先级队列,受关键部分保护,一个处理此队列的工作线程(while(true)),以及将指向数据的指针发送到主线程的 PostMessage 机制。

这种方法让我害怕的是 PostMessage 根本不能保证到达主线程,所以,如果我理解正确的话,就有可能发生内存泄漏。

第二个问题是另一个应用程序可以向我的应用程序发送自定义消息,并且我的应用程序可能会尝试取消引用 WPARAM 或 LPARAM 作为指针,从而导致 AV。

有谁知道此类任务的最佳实践是什么?

数据可以是 Web 控件的 HTML 内容,也可以是列表框、下拉列表等的其他内容。