Консультация № 129220
26.03.2008, 21:29
0.00 руб.
0 2 2
Здраствуйте, у меня накопилась пара вопросов, буду крайне признателен, если поможете мне.

1.Как можно из программы отправить пользователя, например в панель управления, или запустить ярлык?

2.Как запустить программу через ассоциативный файл и как связать расширение файла с программой?

Спасибо заранее

Обсуждение

Неизвестный
26.03.2008, 21:43
общий
это ответ
Здравствуйте, PAFOS!
По второму вопросу.
Посмотрите <a href=http://www.delphisources.ru/pages/faq/base/register_new_file_type.html>эту статью</a>. В приложении ее копия (пример для Delphi, но переделать, я думаю, не составит проблем).
После регистрации своего расширения файла (или изменения программы, открывающей выбранный тип), можно просто запустить данный файл с помощью функции <a href=http://msdn2.microsoft.com/en-us/library/bb762153.aspx>ShellExecute</a>.

Удачи!

Приложение:
uses Registry;Затем в публичных объявлениях объявляем процедуру регистрации нового типа файлов:public { Public declarations } procedure RegisterFileType(ext: string; FileName: string);Описываем её так:procedure TForm1.RegisterFileType(ext: string; FileName: string);var reg: TRegistry;begin reg:=TRegistry.Create; with reg do begin RootKey:=HKEY_CLASSES_ROOT; OpenKey(‘.‘+ext,True); WriteString(‘‘,ext+‘file‘); CloseKey; CreateKey(ext+‘file‘); OpenKey(ext+‘file\DefaultIcon‘,True); WriteString(‘‘,FileName+‘,0‘); CloseKey; OpenKey(ext+‘file\shell\open\command‘,True); WriteString(‘‘,FileName+‘ "%1"‘); CloseKey; Free; end;end;Ну а по нажатию какого-нибудь батона регистрируем!procedure TForm1.Button1Click(Sender: TObject);begin RegisterFileType(‘DelphiWorld‘, Application.ExeName);end;
Неизвестный
26.03.2008, 22:07
общий
это ответ
Здравствуйте, PAFOS!

По первому вопросу - используйте ShellExecute с параметром либо "что надо".cpl (например, ShellExecute(Handle, ‘open‘, ‘intl.cpl‘, nil, nil, SW_SHOW)), либо полный путь к вашему ярлыку в качестве параметра. Не забудьте ShellAPI в uses.

Форма ответа