Получить PID от MS-Word ApplicationClass?

Убедитесь, что вы включили


Проверка с помощью devtools в Chrome бессмысленна, так как devtools уменьшает доступный размер страницы для приложения, поэтому карта будет уменьшена. Но вы можете проверить с помощью Edge:

enter image description here

1680 x 977, как и ожидалось, на дисплее 1680 x 1050 с учетом верхних полос

14
задан Deduplicator 24 February 2015 в 20:50
поделиться

4 ответа

Обычный способ получить его - изменить заголовок Word на что-то уникальное и перемещаться по списку окон верхнего уровня, пока не найдете его (EnumWindows).

2
ответ дан 1 December 2019 в 13:59
поделиться

Нет, к сожалению, нет способа связать экземпляр ApplicationClass с запущенным процессом Word.

Зачем вам нужно убивать экземпляр Word? Не могли бы вы просто попросить его закрыть все свои документы, а затем просто прекратить использование этого экземпляра? Если вы удалите все ссылки на класс, со временем GC сработает и отключит сервер COM .

1
ответ дан 1 December 2019 в 13:59
поделиться

http : //www.codekeep.net/snippets/7835116d-b254-466e-ae66-666e4fa3ea5e.aspx

///Return Type: DWORD->unsigned int
///hWnd: HWND->HWND__*
///lpdwProcessId: LPDWORD->DWORD*
[System.Runtime.InteropServices.DllImportAttribute( "user32.dll", EntryPoint = "GetWindowThreadProcessId" )]
public static extern int GetWindowThreadProcessId ( [System.Runtime.InteropServices.InAttribute()] System.IntPtr hWnd, out int lpdwProcessId );


private int _ExcelPID = 0;
Process _ExcelProcess;

private Application _ExcelApp = new ApplicationClass();
GetWindowThreadProcessId( new IntPtr(_ExcelApp.Hwnd), out _ExcelPID );
_ExcelProcess = System.Diagnostics.Process.GetProcessById( _ExcelPID );

...

_ExcelProcess.Kill();
2
ответ дан 1 December 2019 в 13:59
поделиться

Возможно, в файле Word есть ошибка. В результате, когда вы откроете файл методом Word.ApplicationClass.Documents.Open () , появится диалоговое окно, и процесс зависнет.

Используйте вместо него Word.ApplicationClass.Documents.OpenNoRepairDialog () . Я обнаружил, что проблема решена.

3
ответ дан 1 December 2019 в 13:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: