gpt4 book ai didi

c# - 如何将字符串发送到另一个窗口?

转载 作者:行者123 更新时间:2023-11-30 18:46:11 26 4
gpt4 key购买 nike

我有两个应用程序,我需要在它们之间发送“短信”。我试过 PostMessage,但我只能发送号码。我使用 lParam 来携带消息,如果我将其更改为 string,我仍然只能得到数字。甚至可以发送字符串吗?如果可以,如何发送?

代码如下:

public const int HWND_BROADCAST = 0xffff;
public static readonly int WM_TEST = RegisterWindowMessage("WM_TEST");

[DllImport("user32")]
public static extern bool PostMessage(IntPtr hwnd, int msg, IntPtr wparam, IntPtr lparam);

[DllImport("user32")]
public static extern int RegisterWindowMessage(string message);

发送消息的代码:

int message = 1234567890;
PostMessage((IntPtr)HWND_BROADCAST, WM_TEST, IntPtr.Zero, (IntPtr)message);

接收消息:

protected override void WndProc(ref Message m)
{
if (m.Msg == WM_TEST)
{
textBox1.AppendText(m.LParam.ToString() + Environment.NewLine);
}

base.WndProc(ref m);
}

那么问题又来了:如何在两个应用之间发送 string

谢谢!

最佳答案

这看起来像 XY Problem .

实现进程间通信的更好方法是使用 net sockets ,稍后可以移植以允许远程进程间通信。您基本上是在一个应用程序的特定端口上监听,然后从另一个应用程序连接到该端口,就好像它是 Internet 上的远程主机一样。

另一种实现进程间通信的方法是使用 Anonymous Pipes ,这是IPC的windows机制。

一般可以查出很多不同的IPC方式here .

不推荐使用Windows Messages对于这件事,因为那不是他们的本意。 WM 是为了操作系统能够通知窗口应用程序有关(大部分)UI 交互,即使任何应用程序都可以将 WM 发送到另一个应用程序。你有更好的选择。

关于c# - 如何将字符串发送到另一个窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30220664/

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