Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > C++ Builder
Перезагрузить страницу Использование OlePropertyGet Documents и OleProcedure Add
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
AlexP AlexP вне форума
Member
 
Сообщений: 53
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 14.12.2006
По умолчанию Использование OlePropertyGet Documents и OleProcedure Add - 22.06.2008, 01:04

При использовании следующего кода:

Код:
Word = CreateOleObject("Word.Application.8");
Word.OlePropertySet("Visible", true);
Word.OlePropertyGet("Documents").OleProcedure("Add");
на компьютере с Microsoft Word Standart Edition 2003 for Students and Teachers появляется сообщение об ошибке: Project Project1.exe raised exception class EOleSysError with message 'Exception ocurred'. Process stopped. Use Step or Run to continue. На компьютерах с другими версиями Microsoft Word ошибки не возникает.

В чем может быть причина и как можно ее устранить без переустановки Microsoft Word?
Ответить с цитированием
  (#2 (permalink)) Старый
Fan_tik Fan_tik вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 11.06.2008
По умолчанию 22.06.2008, 01:35

Похоже, зря указываешь конкретную библиотеку Word.Application.8
Word = CreateOleObject("Word.Application");
Программа сама найдет номер установленной версии в реестре Виндовс.
Ответить с цитированием
  (#3 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,298
Сказал(а) спасибо: 31
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 23.06.2008, 01:04

Эти процедуры не создают параметры по умолчанию, параметров должно быть ровно столько, сколько требуется.

Для Add надо 2 параметра указывать - имя шаблона для создаваемого документа и еще один булевский, назначение не помню, у меня в модуле стоит OleVariant(false)
Ответить с цитированием
  (#4 (permalink)) Старый
AlexP AlexP вне форума
Member
 
Сообщений: 53
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 14.12.2006
По умолчанию 23.06.2008, 01:55

To Fan_tik: Со строкой Word = CreateOleObject("Word.Application"); программа тоже не работает.
Ответить с цитированием
  (#5 (permalink)) Старый
Fan_tik Fan_tik вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 11.06.2008
По умолчанию 24.06.2008, 00:21

Цитата:
Со строкой Word = CreateOleObject("Word.Application"); программа тоже не работает.
По умолчанию программа при создании обьекта Word.Application смотрит в реестре номер версии.
В моем реестре прописан:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Applicati on\CurVer:"Word.Application.11"
Кстати, 8 и 11 версии, похоже дружат. Чисто из детского любопытства, какая версия прописана у бедных студентов?
Попробуй прописать эту версию, может, подружатся на этом компьютере? Если да, то придется проверять номер версии в реестре. Ошибка появляется сразу при создании обьекта?

Цитата:
Для Add надо 2 параметра указывать - имя шаблона для создаваемого документа и еще один булевский, назначение не помню, у меня в модуле стоит OleVariant(false)
Можно указывать, а можно нет - программа сделает по умолчанию: Шаблон = Normal.dot, false - создать документ, 0-тип документа.
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
AlexP AlexP вне форума
Member
 
Сообщений: 53
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 14.12.2006
По умолчанию 24.06.2008, 01:39

To Fan_tik: С Word.Application.11 тоже не работает.
Ответить с цитированием
  (#7 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 24.06.2008, 05:13

AleksP
Попробуй так
Код:
Word = CreateOleObject("Word.Application");
Word.OlePropertySet("Visible", true);
Word.OlePropertyGet("Documents").OleProcedure("Add", StringToOleStr( "" ) );
Ответить с цитированием
  (#8 (permalink)) Старый
AlexP AlexP вне форума
Member
 
Сообщений: 53
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 14.12.2006
По умолчанию 24.06.2008, 10:27

To FataLL: То же самое. Причем отладчик выдает сообщение об ошибке на строке

Код:
OleProcedure(name, static_cast<TAutoArgsBase*>(&args));
модуля sysvari.h.
Ответить с цитированием
  (#9 (permalink)) Старый
FataLL FataLL вне форума
Member
 
Аватар для FataLL
 
Сообщений: 1,783
Сказал(а) спасибо: 2
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 04.11.2004
По умолчанию 24.06.2008, 11:06

AleksP
Ты точно убрал цифру версии ворда? Ок. Тогда попробуй создать пустой документ ворда и укажи во втором параметре путь к нему.
Код:
Word = CreateOleObject("Word.Application"); // Обрати внимание! Цифру версии не указываем!!
Word.OlePropertySet("Visible", true);
Word.OlePropertyGet("Documents").OleProcedure("Add", StringToOleStr( "C:\\123.doc" ) );
И если и так не откроет, тогда надо уже не в коде копаться, а в самой системе. Либо что-то конфликтует, либо уже какая-то специфика именно этой версии ворда.
Ответить с цитированием
  (#10 (permalink)) Старый
Ma_s_ik Ma_s_ik вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.03.2008
По умолчанию 28.08.2008, 12:07

Предлагаю использовать компонент для работы MS Office...
- компоненты для Borland C++ Builder 6
- описание функций и их параметров
- пример программы с использованием компонента TOLEExcel
- те же компоненты, только для Borland Developer Studio 2006

Последний раз редактировалось Pasatiji; 09.06.2013 в 13:49
Ответить с цитированием
  (#11 (permalink)) Старый
Maks1978 Maks1978 вне форума
Member
 
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.10.2008
По умолчанию 29.10.2008, 22:00

Я работаю только не с Word 2003, а с Excel 2003 и вылетала точно такая же ошибка. Я запускал свой проект непосредственно с С++ Builder 6 - ошибка вылетает. Попробовал по другому: создал EXE и запустил его - всё работает, ошибка эта больше не вылетала. Попробуй тоже запустить непосредственно EXE.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
папка Documents and Settings скрытая и к ней нет доступа... чё делать? Muck Duck Windows 7 4 27.07.2011 20:44
Использование SSL w.hack PostgreSQL 0 28.06.2011 21:59
Для каких целей нужны некоторые папки в Documents and Settings? Chyvakoff Любые вопросы от новичков 9 15.11.2008 18:37
После переустановки ОС нет доступа к старой папке Documents and Settings. Kosmos Техническая поддержка 5 23.08.2008 11:29
Задание рамки у ячейки таблицы через OlePropertyGet AlexP C++ Builder 9 12.05.2008 15:58
Использование конструкции this-> Alexiski С/С++ 309 24.01.2008 23:21
Использование GPU Neptun Программирование графики 0 13.09.2007 15:30
Использование dll bikart Visual Basic 2 11.09.2007 18:55
использование GD otstoy PHP 2 13.06.2006 14:00
Использование map в VC++ 6 zhekha Visual C++ 2 08.02.2006 12:35
Путь к Mu Documents в Windows XP Tanya Sochava C++ Builder 5 26.12.2004 16:52
VTK и его использование Slack Программирование графики 1 22.10.2004 18:41



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов