Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.10.18;
Скачать: CL | DM;

Вниз

Запуск программы, установленной в Виндоус по умолчанию   Найти похожие ветки 

 
oldman ©   (2009-08-13 10:52) [0]

Надо открыть файл, предположим, .txt. (программно)
Ноя я не знаю, что установлено у пользователя - Блокнот, MSOffice, OpenOffice...
Что мне прописать в ShellExecute?

ЗЫ: В реестр лезть не хочется, да и тогда тоже мороки много.
Можно программно "кликнуть" по файлу и передать проблему системе?


 
Дмитрий С ©   (2009-08-13 10:54) [1]

Сам ответил же.

uses ShellApi
+
ShellExecute


 
DVM ©   (2009-08-13 10:55) [2]

ShellExecute(Handle, "open", "имя файла", nil, nil, SW_MAXIMIZE);


 
Ega23 ©   (2009-08-13 10:56) [3]

procedure TForm3.Button1Click(Sender: TObject);
begin
 if not OpenDialog1.Execute then Exit;
 ShellExecute(0, "open", PAnsiChar(OpenDialog1.FileName), nil, nil, SW_SHOW);
end;


 
Alex_Ford   (2009-08-13 11:52) [4]

Здесь все просто.
Если это текстовый файл, то, применив вышеописанную функцию - система сама откроет файл. Если Word, Excel и другие, то также система сама все обработает.
Только не стоит забывать проверять файл на его существование if FileExists(paramstr(0))+"файл.txt" then...... else......


 
Дмитрий С ©   (2009-08-13 12:02) [5]


> if FileExists(paramstr(0))+"файл.txt" then...... else...
> ...

O_o-очень интересно :)


 
Alex_Ford   (2009-08-13 12:04) [6]


> O_o-очень интересно :)

да-да, только я немного поспешил.


if fileexists(extractfilepath(paramstr(0))+"file.txt") then.....


 
Anatoly Podgoretsky ©   (2009-08-13 12:16) [7]

> Alex_Ford  (13.08.2009 11:52:04)  [4]

Пока проверял - файл прекратил существование.


 
wicked ©   (2009-08-13 13:09) [8]

кстати, рекомендую писать не
ShellExecute(0, "open", PAnsiChar(OpenDialog1.FileName), nil, nil, SW_SHOW);

а
ShellExecute(0, nil, PAnsiChar(OpenDialog1.FileName), nil, nil, SW_SHOW);

потому, что действием по умолчанию может быть как раз и не open, а что-нибудь другое
а так мы даем системе знать, что мы именно хотим использовать действие по умолчанию



Страницы: 1 вся ветка

Текущий архив: 2009.10.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
3-1228230921
mosco
2008-12-02 18:15
2009.10.18
Uniqueidentifier в фигурных скобках, как от них избавиться?


15-1248678356
NailMan
2009-07-27 11:05
2009.10.18
Можт кому интересно будет


2-1250078861
Lexus_samara
2009-08-12 16:07
2009.10.18
Как программно удалить одну строку из текстового файла(txt)?


2-1250702557
Штрихкодер
2009-08-19 21:22
2009.10.18
разделитель разрядов в StringGrid1


3-1228248399
TheEd
2008-12-02 23:06
2009.10.18
Можно ли получить доступ к таблицам базы 1С?