我们正在从一个进程(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 ++消息中。
答案 0 :(得分:0)
问题是权限提升: