Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Как найти файл? Добавлено: 03.01.04 22:06  

Автор вопроса:  cresta
Как можно определить, установлен Word или нет?
Перебирать винт на предмет Dir$(WinWord.exe) слишком долго. Может есть ключи в реестре, которые неизменно создает Word независимо от своей версии?

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 03.01.04 23:23

Ключи реестра могут и быть, а вот сама программа...

Попробуй создать объект Word, выдаст глюк - значит, не установлен...

Ответить

Номер ответа: 2
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #2 Добавлено: 03.01.04 23:41
Так в том и дело, чтобы при создании объекта избежать глюка, и соответственно, чтобы не рухнула программа, а просто при отсутствии Ворда не запускалась процедура создания Word.Application. А то это такое стремное дело -Ворд, чуть что не так, сразу VB вылетает, а ехе и подавно рухнет, никакие обработчики ошибок не помагают

Ответить

Номер ответа: 3
Автор ответа:
 S_Serg



Вопросов: 9
Ответов: 25
 Профиль | | #3 Добавлено: 04.01.04 04:12

word есть в виндах, начиная с 95, т.е. можно сказать во всех.

В 95 - это версия 6.0, которая потом переименовалась в wordpad, но осталась в следующих системах.

Но вот поддерживает ли wordpad объекты офисного word'а? только эксперементально.

Ответить

Номер ответа: 4
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 04.01.04 04:21

В качестве эксперимента... Попробуй запускать поток (или процесс), проверяющий наличие Word созданием объекта... Слетит - значит, нет, останется жить - есть.

Ответить

Номер ответа: 5
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #5 Добавлено: 04.01.04 10:38

Придумал: создать файл C:\1.doc и задать его имя как входной параметр для FindExecutable. Если вернёт меньше 32 значит WINWORD не установлен, если больше - вернет в буфере путь к WINWORD.EXE  и можно создавать объект

А CreateProcess или что-либо подобное требуют как входной параметр путь к Exe файлу. И если Word  установлен не в Default  папке, то получишь неправильный результат. Хотя Word будет установлен.

Ответить

Номер ответа: 6
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #6
Добавлено: 04.01.04 13:17

Вот к примеру, как обойти обрушения программы при создании объекта Word, если такого АctiveX не существует:

On Error Resume Next
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-сайт: sharpc.livejournal.com
 Профиль | | #8
Добавлено: 04.01.04 21:57

Ключ в реестре может и быть, а вот самого Word... Попробуй запускать операции с Word в другом потоке - тогда твоя программа не слетит.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам