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

Вниз

Запуск любого файла в зависимости от расширения   Найти похожие ветки 

 
Doom ©   (2003-03-24 10:36) [0]

Знаю, что это просто. В статьях нашел пример, как "привязать" определенное расширение к своей ехе - программе.

У меня задача наоборот


Мне нужно Запустить любой файлй в зависимости от расширения
например вводим "аааю.тхт" - запускается Блокнот или ВордПад.
можно ли сделать это, НЕ открывая реестр?
Или это - единственный способ?


 
Anatoly Podgoretsky ©   (2003-03-24 10:49) [1]

Можно, укажи путь до Блокнот или ВордПад.


 
KDS ©   (2003-03-24 10:50) [2]

Используй функцию ShellExecute из модуля ShellApi.

Так открывается файл программой по умочанию для данного типа (txt)
ShellExecute(Handle,"open","аааю.тхт",nil,nil,SW_SHOWMAXIMIZED);
Тоись запускается Блякнот.
Можно явно указать какой прогой читать этот файл (напр. Вордом)
ShellExecute(Handle, "open","winword.exe", "аааю.тхт",nil, SW_SHOWMAXIMIZED);

Общем см. доку по Ф1 на параметры этой функции. ;-))


 
Intell ©   (2003-03-24 10:56) [3]

16 и 32 разрядный вызов (работает на разных операционных системах)

procedure TForm1.Button1Click(Sender: TObject);
begin
winexec(pchar("notepad.exe"),sw_shownormal);
end;



Есть другой способ - 32 разрядный (работает только под Windows, но быстрее предыдущего)

добавляем модуль ShellAPI в USES

procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle,nil,PChar("notepad.exe"),nil,nil,SW_ShowNormal);
end;



Ещё один способ - открывает не только *.exe файлы, как предыдущие, а открывает по маске

добавляем модуль ShellAPI в USES

procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Application.Handle, "open", "C:\мои документы\Doc1.doc", nil, nil, sw_ShowNormal);
end;



Другой способ - открывает ссылки в инет:

добавляем модуль ShellAPI в USES

procedure TForm1.Label1Click(Sender: TObject);
begin
ShellExecute(0, "open", " http://www.pl-computers.ru", "", "", SW_Show);
end;

открывает ссылки Email:
procedure TForm1.Label1Click(Sender: TObject);
begin
ShellExecute(0, "open", "mailto:sergein@nojabrsk.ru", "", "", SW_Show);
end;


Другой способ: (Не забудьте добавить Shellapi в Uses)

function ExecuteFile(const FileName, Params, DefaultDir: string; ShowCmd: Integer): THandle;
var
zFileName, zParams, zDir: array[0..79] of Char;
begin
Result := ShellExecute(Application.MainForm.Handle, nil,
StrPCopy(zFileName, FileName), StrPCopy(zParams, Params),
StrPCopy(zDir, DefaultDir), ShowCmd);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
ExecuteFile("maker.exe","text_file","c:\maker", SW_SHOWNORMAL);
end;

Здесь есть то, что тебе надо.

sergein@nojabrsk.ru


 
Doom ©   (2003-03-24 11:02) [4]

Anatoly Podgoretsky © (24.03.03 10:49)
KDS © (24.03.03 10:50)
Intell © (24.03.03 10:56)

Всем спасибо, что откликнулись !!!


 
Anatoly Podgoretsky ©   (2003-03-24 11:09) [5]

Возможно тебе еще потребуется функция FindExecutable



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

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

Наверх




Память: 0.48 MB
Время: 0.029 c
14-6793
Портвейн
2003-03-18 02:56
2003.04.03
жена и ООП


1-6445
@andrew
2003-03-20 16:44
2003.04.03
Ресурсы. Есть файл, созданный WriteComponentResFile


14-6726
Костя Панкратов
2003-03-16 14:05
2003.04.03
Как найти средневзвешенную стоимость???


3-6373
prihod
2003-03-14 16:11
2003.04.03
Вопрос по структуре БД FoxPro


3-6379
MAXX_MAIL
2003-03-14 21:16
2003.04.03
DBGrid