这是我的任务:
运行托管 WPF 应用程序(即我的代码应该在其他 AppDomain 中运行)
线程
当我说“最好”时,我的意思是:
尽可能(没有线程死锁,
等)
平台没有问题(尤其是
在 Vista x64 上)
最小用例
目标进程窗口到“代码
注入(inject)”
我正在评估的解决方案:
1) 通过 windows 钩子(Hook)注入(inject) (如 Snoop )
优点:
缺点:
2) 通过EasyHook 注入(inject)图书馆
优点:
缺点:
线程
安装在广汽
3) 通过 WriteProcessMemory/CreateRemoteThreadEx/LoadLibrary 注入(inject)
优点:
缺点:
在 DllMain 中,需要 CLR 托管,
等)
我将使用方法#1。你能推荐一个更好的方法吗?
是否有任何基于 CLR 托管在非托管 DLL 中的体面技术?
请注意,我知道这些问题:
最佳答案
在我的旧项目中,我使用的是 CECIL(为单声道完成),它允许我在任何代码中注入(inject)性能跟踪代码。示例太大,无法在此处粘贴,但请查看项目 ReflectionStudio尤其是 this injector class - 。始终可在 mono/cecil web site 上获得- 唯一要做的就是处理您对主 UI 线程的请求。
关于.net - 将代码注入(inject)正在运行的 WPF 应用程序的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/477441/