我想將一個消息從Windows服務傳遞到已經運行的Windows桌面應用程序。我已經在windows服務上實現了一個定時器。在一段時間之後,服務會向Windows應用程序發送消息。如何使用c#將消息從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桌面應用程序進程無法收到消息。你能幫我嗎?
你看過管道或回送套接字連接嗎? –