Я запускаю приложение Excel с использованием класса Process
. Я могу получить идентификатор процесса & в главном окне окна с кодом ниже.Извлечь приложение Excel из идентификатора процесса
Process xlP = Process.Start("excel.exe");
int id = xlP.Id;
int hwnd = (int)Process.GetCurrentProcess().MainWindowHandle;
Итак, это запускает приложение Excel. Как связать этот конкретный экземпляр Excel с идентификатором процесса &?
Я видел похожие вопросы здесь, но ответ был ссылкой на веб-страницу, которая больше не существует.
В основном я хочу что-то вроде ниже.
oExcelApp = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
Пожалуйста, не приложение Excel должен быть запущен с помощью метода Process.Start
, нет, если Буц или maybes.
Что случилось с GetActiveObject после Process.Start? По умолчанию будет работать только один экземпляр Excel. Если есть несколько экземпляров, вам нужно пройти таблицу ROT, получить каждый экземпляр и найти processid из App.HWND –
@AlexK. Спасибо за ответ. Мы используем окна 7, и возможно, что в любое время может быть более одного экземпляра excel. Вот почему я думал, что идентификатор процесса будет полезен, но думаю, что я ошибаюсь. Извините, что таблица ROT? могу сказать, что это ново для меня – mHelpMe
Просто любопытно, что вы пытаетесь сделать с открытым документом excel? – Nick