我想将消息从 Windows 服务传递到已经运行的 Windows 桌面应用程序。我已经在 Windows 服务上实现了一个计时器。一段时间后,服务会向 Windows 应用程序发送一条消息。
服务或发件人代码如下:
System.Diagnostics.Process[] lProcs = System.Diagnostics.Process.GetProcessesByName("TestProcess2");
if (lProcs.Length > 0)
{
IntPtr handle = lProcs[0].MainWindowHandle;
if (handle != IntPtr.Zero)
SendMessage(handle, 232, IntPtr.Zero, IntPtr.Zero);
}
和windows桌面应用程序(接收器)代码如下:
protected override void WndProc(ref Message m)
{
if (m.Msg == 232)
{
MessageBox.Show("Received");
}
else
{
base.WndProc(ref m);
}
}
当两个进程都是 Windows 桌面应用程序时,上面的代码工作正常。当我使用 Windows 服务作为发件人时,Windows 桌面应用程序进程无法接收该消息。你能帮我吗?