gpt4 book ai didi

c# - SendMessage 到 .NET 控制台应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 18:48:17 25 4
gpt4 key购买 nike

我一直在试验使用 WM_COPYDATA 从两个 .NET Windows Forms 应用程序发送消息,效果很好。

我想知道这是否可以通过控制台应用程序来完成。

SendMessage 函数接收窗口句柄之后,如何获取控制台应用程序的窗口句柄?

[DllImport("User32.dll")]
public static extern Int32 SendMessage(int hWnd, int Msg, int wParam, [MarshalAs(UnmanagedType.LPStr)] string lParam);

我还需要在控制台应用程序中设置某种消息循环才能接收消息吗?

最佳答案

最常见的IPC方法(WM_COPYDATA 除外)是内存映射文件和命名管道。我建议您查看后者。

MSDN 有一个 example of named-pipe communication .具体来说,您需要使用的类是 NamedPipeServerStreamNamedPipeClientStream,它们在创建后的行为在很大程度上类似于普通网络流。

好处是它也可以在网络上工作,尽管您显然也可以在一台机器上使用它。

至少可以说,在控制台应用程序中设置一个实际的 Windows 消息循环是很复杂的。如果你真的需要这样做,这里有一个相当冗长的 article on the subject .如果您只想传输数据,我强烈建议您改用命名管道;如果您实际上不需要处理标准的 Windows 消息,那么这将是不值得的。

关于c# - SendMessage 到 .NET 控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2376237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com