我正在使用C#,需要根据进程ID获取特定的Excel实例。我从另一个应用程序中获取所需实例的进程ID,但不知道该如何继续操作,也不知道如何根据进程ID获取正在运行的Excel实例。
我在网上进行了大量研究,但只看到了使用Marshal.GetActiveObject(...)或Marshal.BindToMoniker(...)的示例,但由于第一个方法返回在ROT中注册的第一个Excel实例而不是我需要的准确实例,因此我不能使用它;而第二个方法要求在尝试获取实例之前保存Excel文件。
另外,如果我能够使用进程ID获取所需Excel实例的CLSID,那么我可能能够调用。
我在网上进行了大量研究,但只看到了使用Marshal.GetActiveObject(...)或Marshal.BindToMoniker(...)的示例,但由于第一个方法返回在ROT中注册的第一个Excel实例而不是我需要的准确实例,因此我不能使用它;而第二个方法要求在尝试获取实例之前保存Excel文件。
另外,如果我能够使用进程ID获取所需Excel实例的CLSID,那么我可能能够调用。
GetActiveObject(ref _guid, _ptr, out objApp);
最终将返回我所需的 Excel 实例。