题
我知道这可能不太可能,所以请原谅我,因为我对 COM 不太了解。
基本上我想做的是获取指向正在运行的应用程序的 IUnknown 接口的指针,问题是我对应用程序唯一了解的是它的主窗口句柄。
这可能吗?
解决方案
执行此操作的“标准”方法是使用 可从窗口访问对象 Win32 API。也就是说,实际上支持这一点的东西并不多,所以你的里程可能会有所不同。您可以 PInvoke 访问 AccessibleObjectFromWindow,传递 HWND,然后在返回的 IntPtr 上使用 Marshal.GetObjectForIUnknown。
其他提示
有时候是的,如果窗口是在你的过程(否则在另一个进程的指针是没有意义的你)和窗口的作家明确地告诉你,这是预期的消息,并返回一个接口。大多不是的,人们通常不会在没有必要和发送未知的作家的消息将有不可预知的行为写的黑客。
不隶属于 StackOverflow