Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / определить запущен ли Word? / 13 сообщений из 13, страница 1 из 1
28.06.2006, 11:07
    #33818636
NLP
NLP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить запущен ли Word?
Подскажите, пожалуйста, как определить, запущен ли на компьютере Word?
Заранее спасибо!
...
Рейтинг: 0 / 0
28.06.2006, 11:13
    #33818665
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить запущен ли Word?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Public Function Com_GetWordObject() As Object
    On Error GoTo errh
    Set Com_GetWordObject = GetObject(, "Word.Application")
        Exit Function
errh:
    On Error GoTo errh2
    Set Com_GetWordObject = CreateObject("Word.Application")
    Exit Function
errh2:
    Set Com_GetWordObject = Nothing
End Function
...
Рейтинг: 0 / 0
28.06.2006, 11:19
    #33818691
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить запущен ли Word?
Melkiades, перемудрил ))
Код: plaintext
1.
2.
3.
4.
5.
6.
Function GetWord() As Object
Dim wrd as Object
    On Error Resume Next
    Set wrd = GetObject(, "Word.Application")
    If wrd Is Nothing Then Set wrd = CreateObject("Word.Application")
    Set GetWord = wrd
End Function
...
Рейтинг: 0 / 0
28.06.2006, 12:06
    #33818885
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить запущен ли Word?
Antonariy, а я On Error Resume Next не люблю... ))
...
Рейтинг: 0 / 0
28.06.2006, 12:58
    #33819046
NLP
NLP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить запущен ли Word?
спасибо за помощь! Все работает! :-)
...
Рейтинг: 0 / 0
28.06.2006, 17:18
    #33819937
Letter_D
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить запущен ли Word?
Melkiades,
Внутри обработчика ошибки присутствует " On Error GoTo "?!
Как же так?!
Что подумает молодое поколение программистов?
...
Рейтинг: 0 / 0
28.06.2006, 22:54
    #33820454
GoTo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить запущен ли Word?
А, что - GoTo проклятая команда?
Один дурак придумал - не использовать ни где, ни когда и не при каких обстоятелствах, другие же как попугаи подхватили.
...
Рейтинг: 0 / 0
29.06.2006, 09:35
    #33820789
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить запущен ли Word?
GoToА, что - GoTo проклятая команда?
Один дурак придумал - не использовать ни где, ни когда и не при каких обстоятелствах, другие же как попугаи подхватили.
Resume Next - проклятая команда.
...
Рейтинг: 0 / 0
29.06.2006, 10:19
    #33820943
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить запущен ли Word?
Это почему же?
...
Рейтинг: 0 / 0
29.06.2006, 10:34
    #33820991
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить запущен ли Word?
GoToА, что - GoTo проклятая команда?

Дело в том, что использовать в обработчике ошибок "On Error GoTo" бессмысленно. Простой тест
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Public Function Com_GetLabudaObject() As Object
    On Error GoTo errh
    Set Com_GetLabudaObject = GetObject(, "Labuda.Application")
    Exit Function
errh:
    On Error GoTo errh2
    Set Com_GetLabudaObject = CreateObject("Labuda.Application")
    Exit Function
errh2:
    MsgBox "Error"
    Set Com_GetLabudaObject = Nothing
End Function
Будет ли сообщение "Error"?
...
Рейтинг: 0 / 0
29.06.2006, 10:37
    #33821000
Letter_D
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить запущен ли Word?
Вот-вот посетитель GoTo уже не понял!
Ничего не понял.
Не об этом речь.
Внутри обработчика ошибки оператор On Error GoTo не используют, ибо в случае ошибки все равно возникнет аварийный стоп.
После того, как программа вывалилась в обработчик по On Error GoTo следующий такой оператор использовать нельзя, пока ошибка не будет обработана и не будет осуществлен возврат/переход по Resume !
Приведенный Melkiades'ом пример работает, потому что в самом обработчике ошибки не возникло, а попробуйте в теле и в обработчике написать что-то типа q=1/0 (вместо Set Com_GetWordObject...) там и там, и посмотрите.
Вообще, я думал Melkiades сразу заметит свой ляп, я думал, он случайно ошибся...
...
Рейтинг: 0 / 0
29.06.2006, 10:40
    #33821008
Letter_D
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить запущен ли Word?
Подрихтую:
"Внутри обработчика ошибки оператор On Error GoTo не используют, ибо в случае возникновения ошибки внутри обработчика ..." далее по тексту.
...
Рейтинг: 0 / 0
29.06.2006, 10:49
    #33821038
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
определить запущен ли Word?
Мдааа, надо ж было так лажануться.
А я так верил человеку, который написал приведенный мной код... и ведь он работал, зараза.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / определить запущен ли Word? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]