Закрытие Ms объектов

Тема в разделе "Lotus - Программирование", создана пользователем lmike, 23 авг 2010.

  1. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    тема не относится, напрямую, к нотусам, но мыж "не можем" без винды ;)

    при работе через КОМ, бывает необходимо закрывать приложения МСО...
    что бы не заставлять это делать пользователей ;), можно звать (для ворда, например):
    Код (Text):
    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:
    RaiseError
    Resume Quit
    End Sub
    открытое файло молча не сохранится ;)
    грубо, но эффективно ;)
    теоретически - можно искать и свои окошки - но кому охота?!
     
  2. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Напрашивается в CodeBase, наверное, в > Форум программистов » Hard & Soft » CODEBASE/Исходники » Lotus » Коддинг @Formula / LotusScript / Java in Lotus » OLE технологии.
     
  3. Darker

    Darker Гость

    Отличная тема! Полезно при "зависших" процессах Excel или Word. (Когда у них .Visible=False)
     
  4. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
  5. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    по ссылке, дал уточнение
     
  6. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Где-то читал, сейчас с наскока не вспомню, что Terminate сначала пытается культурно закрыть процесс, и только если процесс повис, делает ему "жёсткий kill". Для некоторых случаев это полезно, а для процессов, которые не снимаются по Quit только дополнительно тратится время..
    Кроме того есть некоторые тонкости...

    Процессы, которые культурными методами не закрываются, мочу так:
    Код (Text):
    Sub TaskKill(pProcessName As String)
    result = Shell(|taskkill /im "| & pProcessName & |" /F /T|, 7)  'Minimized without focus
    Sleep(1)        'Время на закрытие процесса taskkill'ом
    End Sub
     
  7. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    VladSh
    всё прально, но есть ещё тонкость - доки МСО будут предлагать восстановление (если занят был МСО, а его рубанули)
     
  8. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    lmike, даже если перед килом доку сделали Save? Чего-то не припоминаю такого на Ехеле..
     
  9. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    а вот этого никто не обещал :what?:
     
  10. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    нет чтобы набивать самому набить XML файл а не работать через КОМ и потом решать возникающие проблемы...
     
  11. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    ну вот такая жисть бывает (с уродливым лицом МСО)
    есть привычки манагеров (а они в ИТ повально безграмотны), есть откаты в ИТ, есть армия виндовых студентов (они и винду-то тольком не знают)
     
  12. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    [​IMG]
    лицо не уродливое ;)
     
Загрузка...

Поделиться этой страницей