问题标签 [windows-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 投票
2 回答
3102 浏览

delphi - Delphi - 如何向 TDataModule 发送 Windows 消息?

TDataModule我需要在我的 Delphi 2010 应用程序中向 a 发送一条 Windows 消息。

我想用

问题:

TDataModule没有Handle. _ 如何向它发送 Windows 消息?

0 投票
3 回答
10475 浏览

windows - 使用 WM_SHOWWINDOW 显示窗口而不是 ShowWindow()

我正在尝试使用热键实用程序(或 NirCMD 等)的 SendMessage 功能来弹出一个隐藏窗口。例如,我可以通过发送 0x0010 (WM_CLOSE) 来关闭窗口,但是当我尝试发送 wParam 为 1 和 lParam 为 0 的 0x0018 (WM_SHOWWINDOW) 时,什么也没有发生。

我环顾四周,有人抱怨 WM_SHOWWINDOW 不起作用的几个地方,他们很高兴地接受了使用 ShowWindow() 的建议。

但是我没有可用的 ShowWindow();我只能发送 Windows 消息。但是 ShowWindow() 并不神奇,它肯定可以通过 SendMessage-ing 一个 WM_SHOWWINDOW 或在幕后的东西来工作。

如何通过向窗口发送消息来显示自己的窗口?

谢谢。

0 投票
3 回答
2819 浏览

winapi - 子窗口如何响应其父窗口的变化

在 Win32 应用程序中,是否有一条 Windows 消息或一些其他通知,当它被放置到不同的父窗口时,它会被发送到子窗口

0 投票
2 回答
1583 浏览

delphi - 从 Windows 方法获取错误 ID:0:FindWindow

我试图向我的 Delphi 应用程序发送一条 Windows 消息,但我的FindWindow方法有问题:我从方法中获取错误 id 为 0 GetLastError。我正在运行 Vista,据我所知,此错误在 XP 或更早版本中很常见,但在 Vista 或 Win 7 中应该可以正常工作(也许我误解了?)。

这是我使用的代码及其在 Delphi DLL 文件中,用 Delphi 5 编写:

0 投票
3 回答
818 浏览

delphi - IPC SendMessage 的问题

嗨,我的SendMessage.

看起来消息永远不会到达我的表单(我正在使用 Winspector Spy 查看在我的表单中注册了哪些消息),这很奇怪,因为我确信我正在发送到当前表单的正确句柄。

SendMessage 在一个 dll 中,但这不应该与它有任何关系。

SendMessage 每次都返回 0。

在接收端:

我也尝试过其他消息,例如 WM_CLOSE。有谁知道为什么会失败?我正在使用德尔福 5。

0 投票
3 回答
201 浏览

windows-services - 将 Windows 服务与交互式窗口 (HWND) 连接的好方法是什么?

我有两个我想一起研究的 Windows 技术:一个 TSP(一个 TAPI 服务提供者)和一个围绕一些硬件的 API。API 同步接受请求,但通过向传递下来的 HWND 发送消息异步返回成功/失败/状态结果。

据我了解,问题在于,由于 TSP 作为 Windows 服务运行,其执行上下文无法访问大多数交互式 Windows 功能。因此,尽管我很想将两者直接链接在一起,但我不能——据我所知,TSP 没有(而且确实不能)有一个 HWND 供 API 发送消息。:-(

对于像我这样一次只在服务/交互线的一侧编写过 Windows 东西的人来说,所有这些都让人头疼。但是 Windows 就是这样,肯定有几种明智的方法可以通过这条线获取消息,不是吗?

您如何建议我尝试将这两件事联系起来?谢谢!:-)

0 投票
1 回答
2219 浏览

c# - 未处理 WM_COPYDATA 消息

我正在尝试使用 Windows 消息在两个 C#/.NET 3.5 应用程序之间进行通信,但我发送的消息似乎有时会收到(但不是所有时间) - 为什么会发生这种情况,以及如何确保消息始终得到妥善处理。我有一个客户对象如下:

我的测试应用程序的主要形式拥有一个 WMTCPBridge 类型的对象,通过调用 GetTargetHandle 开始通信并通过调用 SendNumericMessage 方法发送单独的消息。服务器是代表现有应用程序的测试工具,我希望避免对其进行不必要的更改。正是这个现有的应用程序驱动了接口的选择(我必须使用 WM_COPYDATA,我必须通过 wparam 发送消息类型代码,如果我想发送单个整数,我应该通过 lparam 而不是 Copydatastruct 发送整数)。服务器应用程序的主要形式具有如下覆盖的 wndproc 方法:

当我同时运行服务器和客户端时,客户端报告它正在发送要处理的消息,我可以通过 Winspector 看到是服务器窗口的句柄,sendMessage 函数返回 0 并且应用程序错误为 0。通常,服务器没有报告收到任何消息,并且 Winspector 不显示任何正在发送到服务器的 WM_COPYDATA 消息。但是,如果我继续从客户端发送消息,服务器会收到一些消息 - 我通常会出现所有消息都通过或没有消息通过的条纹。当我修改客户端以发送 WM_CLOSE 消息时,服务器将不可避免地接收它们并关闭 - 即使我尝试使用 WndProc 方法捕获 WM_CLOSE 消息,如上所示。

我的消息怎么了?我特别困惑,因为 MSDN 说 SendMessage 函数仅在处理完消息后才返回。

0 投票
2 回答
1371 浏览

c++ - 如何让 Windows 从应用程序进入睡眠状态?

我试图制作一个可以让 Windows 7 进入睡眠状态的应用程序,我一直在查看 WM_Messages,但似乎无法找到一个可以完成工作的应用程序。

如果有任何区别,我可以使用 ether C++ 或 Delphi 来制作应用程序。

0 投票
3 回答
6653 浏览

winapi - 捕获 Win32 消息

有谁知道可以捕获发送到特定进程的 win32 消息的工具?我以为 sysinternals 有一个工具可以解决这个问题,但现在我找不到它。有人知道一些吗?

0 投票
1 回答
1543 浏览

delphi - 如何让我的控制台应用程序接收窗口消息?

我需要在我的控制台应用程序中编写一个消息处理程序来处理接收到的消息。例如,我注册 WM_Test 并将其发送到我的控制台应用程序,如下所示:

现在,当我在控制台应用程序中收到此消息时,我希望显示一个消息框。

我可以在控制台程序中使用 PeekMessage 或 AllocateHWND 吗?

我知道我可以使用管道来完成这项工作,但我想知道我是否可以使用窗口消息来完成这项工作。