你好堆栈溢出:有时读者,第一次海报。
背景
Windows XP运行XP SP3,即将升级到Windows 7(MSDNAA< 3)
我有一个注入的DLL,它通过挂钩一个每秒被调用数千次的函数来获取周期。
我想通过python应用程序来传达/控制这个DLL。基本上,DLL完成工作,python应用程序提供大脑/决策。
我这样做的游戏计划是,我会在DLL中有一个计数器和一个if语句。每次调用钩子函数时,都会反转++,然后跳回原函数,直到if(counter == 250){// dostuff(); }。我虽然落后于它,但它将允许目标应用程序大部分畅通无阻地运行,但仍然会让我做有趣的事情。
问题:
我完全不知道应该使用哪种IPC方法来进行通信。我们有套接字,共享内存,管道,文件映射(?),RPC和其他(看似)深奥的东西,比如写入剪贴板。
除了玩具示例,我从未实施任何类型的IPC。
我很确定我需要的东西:
帮助?感谢您的时间,我希望我已经提供了足够的一般信息,并没有违反任何公认的惯例。
我想补充说相关问题框非常酷,我在发布前仔细阅读过。
答案 0 :(得分:2)
尝试套接字。您的要求基本上是异步操作的要求; Python在套接字上有异步IO的asyncore模块。同时,它看起来不像Python的stdlib可以异步处理其他IPC的东西,所以我不建议使用它们。
答案 1 :(得分:1)
如果您不关心实时,那么您可以使用文件系统进行通信:DLL输出的日志文件,以及不时读取的配置文件,以更改DLL的行为。