您可以使用WPF做HwndSource.AddHook此:
private HwndSource hwndSource;
void MyWindowClass_Loaded(object sender, RoutedEventArgs e)
{
hwndSource = HwndSource.FromHwnd(new WindowInteropHelper(this).Handle);
hwndSource.AddHook(new HwndSourceHook(WndProc));
}
private static IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
// Process your windows proc message here
}
不幸的是,對於一個控制檯應用程序沒有真正equivelent。 Windows消息,根據定義,發送,並通過窗口句柄(HWND)接受,所以他們真的是爲了與GUI應用程序中使用。
還有很多其他的,少奇,意味着做inter-process communication on Windows,但是。我個人比較喜歡使用管道 - 建立命名管道的作品相當不錯,在本地和託管代碼,並且是兩個程序之間的通信效率非常高。