![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запуск программы, установленной в Виндоус по умолчанию
oldman © (2009-08-13 10:52:00)Надо открыть файл, предположим, .txt. (программно)
Ноя я не знаю, что установлено у пользователя - Блокнот, MSOffice, OpenOffice...
Что мне прописать в ShellExecute?
ЗЫ: В реестр лезть не хочется, да и тогда тоже мороки много.
Можно программно "кликнуть" по файлу и передать проблему системе?
wicked (2009-08-13 13:09:00) [1]кстати, рекомендую писать не
ShellExecute(0, 'open', PAnsiChar(OpenDialog1.FileName), nil, nil, SW_SHOW);
а
ShellExecute(0, nil, PAnsiChar(OpenDialog1.FileName), nil, nil, SW_SHOW);
потому, что действием по умолчанию может быть как раз и не open, а что-нибудь другое
а так мы даем системе знать, что мы именно хотим использовать действие по умолчанию
Anatoly Podgoretsky (2009-08-13 12:16:00) [2]> Alex_Ford (13.08.2009 11:52:04) [4]
Пока проверял - файл прекратил существование.
Alex_Ford (2009-08-13 12:04:00) [3]
> O_o-очень интересно :)
да-да, только я немного поспешил.
if fileexists(extractfilepath(paramstr(0))+'file.txt') then.....
Дмитрий С (2009-08-13 12:02:00) [4]
> if FileExists(paramstr(0))+'файл.txt' then...... else...
> ...
O_o-очень интересно :)
Alex_Ford (2009-08-13 11:52:00) [5]Здесь все просто.
Если это текстовый файл, то, применив вышеописанную функцию - система сама откроет файл. Если Word, Excel и другие, то также система сама все обработает.
Только не стоит забывать проверять файл на его существованиеif FileExists(paramstr(0))+'файл.txt' then...... else......
Ega23 (2009-08-13 10:56:00) [6]
procedure TForm3.Button1Click(Sender: TObject);
begin
if not OpenDialog1.Execute then Exit;
ShellExecute(0, 'open', PAnsiChar(OpenDialog1.FileName), nil, nil, SW_SHOW);
end;
DVM (2009-08-13 10:55:00) [7]ShellExecute(Handle, 'open', 'имя файла', nil, nil, SW_MAXIMIZE);
Дмитрий С (2009-08-13 10:54:00) [8]Сам ответил же.
uses ShellApi
+
ShellExecute