将数据从 Windows 挂钩传递到另一个进程的最佳方法是啥?

Posted

技术标签:

【中文标题】将数据从 Windows 挂钩传递到另一个进程的最佳方法是啥?【英文标题】:What is the best way to pass data from a Windows hook to another process?将数据从 Windows 挂钩传递到另一个进程的最佳方法是什么? 【发布时间】:2019-11-15 01:54:04 【问题描述】:

我已经在 Rust 中实现了一个 Windows 键盘挂钩,并希望将它读取的数据传递给另一个可以实际使用数据的进程。我尝试创建一个命名管道并让回调函数将数据写入管道,但我发现该方法存在大量开销。您建议使用哪些方法将数据从键盘挂钩传递到另一个进程?

【问题讨论】:

写一个驱动。 为什么其他进程也不能创建键盘挂钩?您是否阻止消息传播? 在IPC中,共享内存通常比管道快。 这里有一篇关于内存映射文件的好文章 --> docs.microsoft.com/en-us/dotnet/standard/io/memory-mapped-files 【参考方案1】:

我很欣赏这些建议。我实现了映射内存方法,发现它比命名管道快得多,但从我的角度来看也更复杂。实际上,我最终回到了 Windows 消息传递系统,并使用 PostMessageW 传递了所有内容,它非常简单且足够快。非常感谢。

【讨论】:

当然,如果这个方法适合你,你可以自己标记一下,以后可能会帮助到人。

以上是关于将数据从 Windows 挂钩传递到另一个进程的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Dart:如何通过流将数据从一个进程传递到另一个进程

如何使用 WCF 将数据从一个进程传递到另一个进程?

将结构从一个进程发送到另一个进程的最简单方法是啥? [关闭]

如何将 SecureString 从一个进程传递到另一个进程?

将结构从一个进程发送到另一个进程的最简单方法是什么? [关闭]

是否可以将变量从一个进程传递到另一个进程?