Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2009, 12:03   #1
Vali_T
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 32
По умолчанию определить офис Delphi

помогите плз,
как программно определить какой офис установлен на компе Microsoft Office или OpenOffice?
Vali_T вне форума Ответить с цитированием
Старый 30.07.2009, 12:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Например так:
Код:
var o:oleVariant;
begin
  o:=GetActiveOleObject('Word.Application');
 caption:=o.Version;
end;
При этом Ворд должен быть запущен.
Но можно заменить на CreateOleObject а потом Ворд закрывать методом quit.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2009, 12:37   #3
Vali_T
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 32
По умолчанию

Stilet не совсем поняла (извиняюсь),
т.е. программа сначала определяет какой офис, потом непосредственно файл открывает в соответствующей форме либо open (form) либо microsoft (oleContainer), при этом никаких вордов не должно быть открыто

var oleVariant;
begin
o:=GetActiveOleObject('Word.Applica tion');
caption:=o.Version;
end;
это как процедуру описывать или функцию?
Vali_T вне форума Ответить с цитированием
Старый 30.07.2009, 12:41   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тебе нужна версия оффиса? 2003 или 2007 или еще какой либо?
Так вот я знаю один способ - запустить СОМ-сервер Ворда и спросить у него версию.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2009, 12:53   #5
Vali_T
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 32
По умолчанию

procedure TForm1.Button5Click(Sender: TObject); // word
//var oleVariant;
begin
//o:=CreateOleObject('Word.Applicatio n');
//caption:=o.Version;
if OFFICE=1 then Button1Click(Self); // если опен то ворд в форме open
if OFFICE=2 then Button3Click(Self); // елси майкрософт то форма microsoft olecontainer
end;

программа должна работать как с майкрософт так и опеном, взависимости от того который установлена на компе
Vali_T вне форума Ответить с цитированием
Старый 30.07.2009, 13:17   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так стоп. т.е заранее ты не знаешь с чем работать?
Тогда выкладывай задачу подробнее ибо может возникнуть ситуация когда на машине стоят несколько вордов разной версии и несколько ОпенОффисов рядом.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2009, 16:24   #7
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
ибо может возникнуть ситуация когда на машине стоят несколько вордов разной версии и несколько ОпенОффисов рядом
Во-во, тоже хотел сказать. Может просто определять к-рый по умолчанию является для документов .doc?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить GMТ компьютера (Delphi) Air Помощь студентам 3 15.06.2012 08:22
Среди 20 введёных чисел определить чётные, распечатать их, определить min Spade Помощь студентам 4 15.06.2008 18:39
Определить сколько раз встречается в тексте самое короткое слово - Delphi 7 Леди Уинтер Помощь студентам 3 08.01.2008 17:56
как из Delphi определить под какой учетной записью осуществлен вход в систему zetrix Безопасность, Шифрование 1 29.10.2006 11:14