Получите структуру WM_COPYDATA в WPF или Консоли приложение C#

Используя JOIN делает код легче читать, так как это очевидно.

нет никакого различия в скорости (, я только что протестировал ее ), и план выполнения является тем же.

7
задан Martin v. Löwis 27 October 2009 в 20:43
поделиться

1 ответ

Вы можете сделать это в 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          
}

К сожалению, для консольного приложения не существует реального эквивалента. Сообщения Windows, по определению, отправляются и принимаются дескриптором окна (HWND), поэтому они действительно предназначены для использования с приложениями с графическим интерфейсом.

Есть много других, менее странных способов выполнения межпроцессного взаимодействия. однако связь в Windows . Мне лично нравится использовать каналы - настройка именованных каналов очень хорошо работает как в машинном, так и в управляемом коде и очень эффективна для взаимодействия между двумя программами.

9
ответ дан 7 December 2019 в 03:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: