以编程方式恢复并将焦点放在系统托盘中运行的第三方应用程序(例如,GoogleTalk或Twhirl)的最佳方法是什么?我在C#中编写我的实用程序,但我显然无法控制第三方应用程序.
我正在尝试使用 Mono.Cecil 重现以下 IL:
call !!0 [mscorlib]System.Threading.Interlocked::CompareExchange<class [System]System.ComponentModel.PropertyChangedEventHandler>(!!0&, !!0, !!0)
Run Code Online (Sandbox Code Playgroud)
当我使用 Mono.Cecil 检查这个 IL 时,我看到指令的操作数是一个 GenericInstanceMethod,它包含一个 MethodReference 类型的 ElementMethod。此 MethodReference 又具有 GenericParameter 类型的返回类型。
我想手动创建相同的对象,但似乎达到了 catch-22。要创建 GenericParameter,我需要一个 IGenericParameterOwner,它似乎与上面的 MethodReference 完全相同。所以我想将 MethodReference 传递给 GenericParameter 构造函数。但是,如果没有返回类型的 TypeReference,我也无法创建 MethodReference,我认为它应该是 GenericParameter。
我该如何解决?我误解了什么?