为了账号安全,请及时绑定邮箱和手机立即绑定

发送到正确的句柄时,SendMessageTimeout 有时会静默失败

发送到正确的句柄时,SendMessageTimeout 有时会静默失败

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

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

问题是权限提升:

  • 发送会话没有提升,并且

  • 接收会话被提升(即以管理员身份运行)。


查看完整回答
反对 回复 2021-07-18
  • 1 回答
  • 0 关注
  • 560 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信