Estoy trabajando con C#, necesito obtener una instancia específica de Excel por su ID de proceso; Obtengo el ID de proceso de la instancia que necesito de otra aplicación, pero no sé qué más hacer, no sé cómo puedo obtener una instancia en ejecución de Excel dado su ID de proceso.¿Cómo obtener una instancia de Excel o un CLSID de instancia de Excel utilizando la ID del proceso?
He investigado mucho en la web, pero solo he visto ejemplos del uso de Marshal.GetActiveObject (...) o Marshal.BindToMoniker (...), que no puedo usar desde que devuelve el primero la primera instancia de Excel registrada en el ROT y no precisamente la que necesito, y la segunda requiere que guarde el archivo de Excel antes de intentar obtener la instancia.
Además, si cuando sea capaz de obtener el CLSID de la instancia de Excel que necesito, utilizando el ID de proceso, entonces puede ser capaz de llamar
GetActiveObject(ref _guid, _ptr, out objApp);
que en última instancia va a devolver la instancia de Excel que yo necesitar.
me puede publicar una muestra cómo utilizar el método GetActiveObject – Higune