Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.11.2011, 15:54
kiman.ru kiman.ru вне форума
Новичок
 
Регистрация: 11.02.2010
Сообщения: 63
Репутация: 10
По умолчанию Узнать может ли ворд открыть документ

Версию Microsoft Word, установленную на компьютере, я знаю. А как узнать версию документа *.doc, *.docx перед открытием? Нужно избежать ошибок при открытии документов. Как это сделать? Что если человек взялфайл другого формата (например, изменил расширение Image.BMP на Image.DOC ) и пытается его открыть?
Ответить с цитированием
  #2  
Старый 24.11.2011, 16:38
Аватар для DelphiM0ZG
DelphiM0ZG DelphiM0ZG вне форума
Новичок
 
Регистрация: 22.10.2011
Сообщения: 62
Репутация: 666
По умолчанию

Для открытия файлов подходит функция ShellExecute модуля ShellAPI. Я открывал документы таким способом:
Код:
1
2
3
4
5
6
procedure TForm1.Button1Click(Sender: TObject);
begin
  If Not(OpenDialog.Execute) Then Exit;
  ShellExecute(Application.MainForm.Handle, PChar('open'), PChar(OpenDialog.FileName),
    Nil, PChar(ExtractFilePath(OpenDialog.FileName)), SW_ShowNormal);
end;
Функция ShellExecute использует, в данном случае, ту программу, которая открывает файлы данного типа по умолчанию. Если нужно узнать расширение файла, то функция: ExtractFileExt, принимает строку - имя файла. А насчёт, как узнать расширение после его изменения, ничего сказать не могу.

Последний раз редактировалось DelphiM0ZG, 24.11.2011 в 16:42.
Ответить с цитированием
  #3  
Старый 24.11.2011, 16:51
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Я бы несколько изменил предложенный код:
Код:
1
2
3
if ShellExecute(Application.MainForm.Handle, PChar('open'), PChar(OpenDialog.FileName),
    Nil, PChar(ExtractFilePath(OpenDialog.FileName)), SW_ShowNormal) < 32
then ShowMessage('Ничего не понимаю!');
А расширение проверять тут как-раз бессмысленно. Пускай само запускаемое приложение решит, правильный это файл для него или не очень.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 24.11.2011 в 16:54.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:00.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025