你好堆栈溢出:有时读者,第一次海报。
背景:
运行 XP SP3 的 Windows 机器,即将升级到 Windows 7 (MSDNAA <3)
我有一个注入的 DLL,它通过挂钩每秒调用数千次的函数来获取循环。
我想通过 python 应用程序通信/控制这个 DLL。基本上,DLL 完成工作,python 应用程序提供大脑/决策。
我的游戏计划是在 DLL 中有一个计数器和一个 if 语句。每次调用钩子函数时,counter++ 然后跳回到原来的函数,直到像 if (counter == 250) { // dostuff(); }。我虽然在这之后它将允许目标应用程序几乎不受阻碍地运行,但仍然会让我做一些有趣的事情。
问题:
我完全不知道应该使用哪种 IPC 方法进行通信。我们有套接字、共享内存、管道、文件映射(?)、RPC 和其他(看似)深奥的东西,比如写入剪贴板。
除了玩具示例之外,我从未实现过任何类型的 IPC。
我很确定我需要一些东西:
- 可以处理 python 和 DLL 之间的来回对话
- 不阻塞/等待
- 可以检查等待数据,如果没有则继续
- 如果涉及锁,可以继续而不是等待
- 也不需要花费大量时间来读/写
帮助?感谢您抽出宝贵时间,我希望我提供了足够的一般信息,并且没有违反任何公认的约定。
我想补充一点,相关问题框非常酷,我在发布之前确实仔细阅读了它。