Страница: 1 |
Ключи реестра могут и быть, а вот сама программа... Попробуй создать объект Word, выдаст глюк - значит, не установлен... word есть в виндах, начиная с 95, т.е. можно сказать во всех. В 95 - это версия 6.0, которая потом переименовалась в wordpad, но осталась в следующих системах. Но вот поддерживает ли wordpad объекты офисного word'а? только эксперементально. В качестве эксперимента... Попробуй запускать поток (или процесс), проверяющий наличие Word созданием объекта... Слетит - значит, нет, останется жить - есть. Придумал: создать файл C:\1.doc и задать его имя как входной параметр для FindExecutable. Если вернёт меньше 32 значит WINWORD не установлен, если больше - вернет в буфере путь к WINWORD.EXE и можно создавать объект А CreateProcess или что-либо подобное требуют как входной параметр путь к Exe файлу. И если Word установлен не в Default папке, то получишь неправильный результат. Хотя Word будет установлен. Вот к примеру, как обойти обрушения программы при создании объекта Word, если такого АctiveX не существует: On Error Resume Next Ключ в реестре может и быть, а вот самого Word... Попробуй запускать операции с Word в другом потоке - тогда твоя программа не слетит. Страница: 1 |
Вопрос: Как найти файл?
Добавлено: 03.01.04 22:06
Автор вопроса: cresta
Как можно определить, установлен Word или нет?
Перебирать винт на предмет Dir$(WinWord.exe) слишком долго. Может есть ключи в реестре, которые неизменно создает Word независимо от своей версии?
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 03.01.04 23:23
Номер ответа: 2
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #2
Добавлено: 03.01.04 23:41
Так в том и дело, чтобы при создании объекта избежать глюка, и соответственно, чтобы не рухнула программа, а просто при отсутствии Ворда не запускалась процедура создания Word.Application. А то это такое стремное дело -Ворд, чуть что не так, сразу VB вылетает, а ехе и подавно рухнет, никакие обработчики ошибок не помагают
Номер ответа: 3
Автор ответа:
S_Serg
Вопросов: 9
Ответов: 25
Профиль | | #3
Добавлено: 04.01.04 04:12
Номер ответа: 4
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #4
Добавлено: 04.01.04 04:21
Номер ответа: 5
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #5
Добавлено: 04.01.04 10:38
Номер ответа: 6
Автор ответа:
boevik
Хранитель чата
ICQ: 137392264
Вопросов: 8
Ответов: 557
Web-сайт:
Профиль | | #6
Добавлено: 04.01.04 13:17
Set obj = CreateObject("word.application")
If Err.Number = 429 Then
MsgBox "Word not exist"
End If
Номер ответа: 7
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #7
Добавлено: 04.01.04 14:16
Дёшево и сердито
Номер ответа: 8
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #8
Добавлено: 04.01.04 21:57