作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个应用程序,我需要在它们之间发送“短信”。我试过 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/
我是一名优秀的程序员,十分优秀!