我们正在从一个进程 (process01) 向另一个进程 (process02) 发送一条 Win32 消息。
Console.WriteLine(targetHandle); // 0x3072a
SendMessageTimeout(
targetHandle,
WM_COPYDATA,
IntPtr.Zero,
ref cds,
SendMessageTimeoutFlags.SMTO_NORMAL,
timeoutMs,
out result);
我们已经确定 process01 正在发送到正确的句柄。有时消息到达 process02,有时它没有到达。
// SomeForm.cs
protected override void WndProc(ref Message m) {
// Sometimes the message arrives here
Console.WriteLine(m); // 0x3072a
}
当消息没有到达 process02 时,process01 中没有错误消息。它只是默默地失败了。
什么可能导致这种情况?我们如何进一步解决这个问题?我们已经使用 Spy++ 来搜索和监听发送到接收句柄的消息。Spy++ 总是通过它的句柄找到进程。当消息没有出现在 中时SomeForm.WndProc,它也不会出现在 Spy++ 消息中。
慕的地8271018
相关分类