【发布时间】:2014-10-10 23:24:28
【问题描述】:
我有一个可以向另一个应用程序发送消息的应用程序。在 Win8 之前的系统下,这工作正常。你给它类或标题,它使用 enumwindows 并找到目标窗口。使用 Win8,您只能枚举顶级窗口,即 TApplication 类。发送方对此感到满意,但接收方不满意。
为了捕捉我在目标表单中使用此代码的消息...
function Tmain.AppMsgHookFunc(var wmsg : TMessage) : Boolean;
begin
Result := False;
if wmsg.Msg = WM_COPYDATA then begin
// Post the caught message back to this form.
postmessage (handle,wmsg.Msg,wmsg.WParam,wmsg.LParam);
end;
end;
...然后使用 application.hookmainwindow 等激活它。
这永远不会触发。我看到如果我使用 sendmessage 向自己发送消息,那么它确实会触发,但是如果我使用 postmessage 不起作用,即使在 XP 上也是如此。有什么建议吗?
【问题讨论】: