Изящно закрывая 1 из N документов, открытых в настоящее время для редактирования WINWORD.EXE [duplicate]

Нет - вы не можете убить их, период. kill -9 тоже не работает. И это не ошибка ядра, это по дизайну. Все сигналы блокируются до тех пор, пока эти процессы не покинут состояние D. Они либо покидают состояние D, либо система перезагружается. Нет, перезагрузка не имеет проблем с этими ребятами.

Обычными виновниками такого рода проблем являются съемные мультимедийные устройства, такие как cdrom. Устройство может быть неисправным, или кто-то нашел способ сделать что-то глупое.

5
задан Borek Bernard 18 June 2012 в 11:51
поделиться

2 ответа

Вместо обычного New-Object -ComObject excel.application us это

$excel = [Runtime.Interopservices.Marshal]::GetActiveObject('Excel.Application')

Rest остается неизменным.

Один недостаток. Вы получите только «экземпляры» excel, начатые одним и тем же пользователем, которые инициируют ps1.

13
ответ дан Ayush 28 August 2018 в 10:51
поделиться

Да, вы можете получить доступ к COM-объекту через HWND [дескриптор окна], используя этот WIN32 API ( AccessibleObjectFromWindow ).

(см. образец SO после здесь использования этого api через C #)

.

Возможно, вам придется написать сборку в C # и / или , чтобы манипулировать вызовами P / Invoke через Powershell .

Вы можете сделать снимок на нем & amp; Посмотрите, как это происходит.

1
ответ дан Community 28 August 2018 в 10:51
поделиться
Другие вопросы по тегам:

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