このquestionは、これと重複してマークされています。それを決定した人々は、この質問に答えがあります。まあ、この質問にはまだ受け入れられた答えがありません。私の答えが助けになるかもしれない。このソリューションはWPFで動作しますが、その本質は実際にはWPFのものではありません
興味深いので、私は少し話題について研究しました。私はあなたがWin32を使用してこれを行うことができると思います。非常に簡単なサンプルを作成しました。 2つのWPFアプリケーション(最初はWpfSender、2番目の名前はWpfListener)。 WpfSenderはWpfListenerプロセスにメッセージを送信します。
WpfSenderには、クリックされたメッセージを送信するボタンが1つしかありません。 WpfListenerは、WpfSenderからメッセージを受信するとメッセージボックスを表示する空のウィンドウです。ここで
コードは、あなたがここにWindowsアプリケーション間でメッセージ
を送信するためのWin32 APIを使用しWpfSender
using System;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Windows;
namespace WpfSender
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
var process = Process.GetProcessesByName("WpfListener").FirstOrDefault();
if (process == null)
{
MessageBox.Show("Listener not running");
}
else
{
SendMessage(process.MainWindowHandle, RF_TESTMESSAGE, IntPtr.Zero, IntPtr.Zero);
}
}
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr SendMessage(IntPtr hwnd, uint Msg, IntPtr wParam, IntPtr lParam);
private const int RF_TESTMESSAGE = 0xA123;
}
}
のための背後にあるWpfListener
using System;
using System.Windows;
using System.Windows.Interop;
namespace WpfListener
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
{
HwndSource source = HwndSource.FromHwnd(new WindowInteropHelper(this).Handle);
source.AddHook(WndProc);
}
private static IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
if (msg == RF_TESTMESSAGE)
{
MessageBox.Show("I receive a msg here a I can call the method");
handled = true;
}
return IntPtr.Zero;
}
private const int RF_TESTMESSAGE = 0xA123;
}
}
のコードですXAMLは書いてないので非常に簡単です。繰り返しますが、これは、アプリケーション間のメッセージ送信を実現する方法を示す簡単なサンプルです。限界はあなたの想像力です。それぞれのアクションを表す多くのint定数を宣言し、switchステートメント内で選択されたアクションを呼び出すことができます。
私は私が私の研究で見つかった2件の記事に従うことを言っている:この情報がお役に立てば幸い
For knowing how to handle WndProc in Wpf
For knowing how to send messages using win32 api
を!
私はMyWrapper、MyApp、MyHookを管理しています。あなたは、名前付きパイプを実行するための良い情報がありますか? –
検索のビットはここに私を連れて来る:http://www.omegacoder.com/?p=101、それはあなたが得るもののために少し関わっているように見える。私はおそらくちょうどソケットのアプローチに行くだろう。 –