Закрытие Ms объектов, инстансы КОМ и пр.

  • Автор темы hosm
  • Дата начала
H

hosm

Рецепт lmike.
При работе через COM бывает необходимо закрывать приложения МСО...
что бы не заставлять это делать пользователей ;), можно звать (для ворда, например):
Код:
Sub CloseMSWord()
On Error Goto ErrH
Dim objs As Variant
Dim strSQL As String
Dim strWMI As String
strWMI = "winmgmts:"
strSQL = "Select * From Win32_Process "
strSQL = strSQL & "where Name = 'WINWORD.EXE'"
Set objs = GetObject(strWMI).ExecQuery(strSQL)
Forall obj In objs
obj.Terminate
End Forall
Quit:
Exit Sub
ErrH:
Error Err, Error$ & " in " & GetThreadinfo(1) & " line " & Cstr(Erl)
End Sub
открытые файлы молча не сохранятся ;)
грубо, но эффективно ;)
Полезно при "зависших" процессах Excel или Word. (Когда у них .Visible=False)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
472
маленькая поправка (в моём варианте она не нужна была) - убрать resume
поднятие ошибки подразумевает обработку выше (в вызывающем коде)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!