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

Вниз

Разгатка!!! Связь с файлами!!!   Найти похожие ветки 

 
Narik ©   (2004-12-27 10:33) [0]

Пусть наша программа Project1.exe будет открывать файлы .loh. Это сделать чуть-чуть посложнее, т.к. необходимо нашу программу "научить" искать эти файлы при щелчке на них. Вот как это делается.
Доработаем мой первый пример. Для этого добавим в каталог реестра .loh подкаталог Shell, в каталог Shell - подкаталог Open, в каталог Open - подкаталог Command. Запишем в значение каталога Command расположение нашей программы + "%1", например C:\Project2.exe "%1". А вот и пример:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, Registry, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation
var Reg: TRegistry;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Reg:= TRegistry.Create;
Reg.RootKey:= HKEY_CLASSES_ROOT;
Reg.CreateKey(".loh");
Reg.CreateKey(".loh\DefaultIcon");
Reg.CreateKey(".loh\Shell");
Reg.CreateKey(".loh\Shell\Open");
Reg.CreateKey(".loh\Shell\Open\Command");
Reg.OpenKey("\.loh\DefaultIcon", true);
Reg.WriteString("","C:\Project1.exe");
Reg.OpenKey("\.loh\Shell\Open\Command", true);
Reg.WriteString("","C:\Project1.exe "%1"");
end;

procedure TForm1.FormCreate(Sender: TObject);
var FileName: string;
begin
if (ParamCount > 0) then
 begin
  FileName := ParamStr(1);
  if ExtractFileExt(FileName)=".loh" then
  Memo1.Lines.LoadFromFile(FileName);
 end;
end;

end.

Ну как? Все доступно написано?
Желаю удачи!!!


 
Narik ©   (2004-12-27 10:35) [1]

А что если программа находится не в C:\Project1.exe???


 
КаПиБаРа ©   (2004-12-27 10:35) [2]

Где прочитал то? Ссылку тож приведи.


 
Narik ©   (2004-12-27 10:36) [3]

КаПиБаРа: гдето на форуме мне сказали!


 
Agent13 ©   (2004-12-27 10:38) [4]

Особенно показательно расширение файлов: .loh :) Интересно, что же в них такого хранится...


 
Narik ©   (2004-12-27 10:40) [5]

КаПиБаРа: хочешь я тебе на e-mail отправлю полную версию! а


 
Narik ©   (2004-12-27 10:41) [6]

Agent13: это просто пример!


 
КаПиБаРа ©   (2004-12-27 10:42) [7]

Narik ©   (27.12.04 10:40) [5]
Не надо. Я в инете подробную статью видел как это делать.


 
Narik ©   (2004-12-27 10:43) [8]

А что если программа находится не в C:\Project1.exe???
я же незнаю куда юзер сохранит мою программу!


 
КаПиБаРа ©   (2004-12-27 10:49) [9]

Narik ©   (27.12.04 10:43) [8]
F1 - ParamStr, Application.ExeName



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

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

Наверх




Память: 0.48 MB
Время: 0.06 c
1-1104757124
Andrewp
2005-01-03 15:58
2005.01.16
Распознование функций


4-1101326612
Dmitry_04
2004-11-24 23:03
2005.01.16
Как отловить событие, когда была переключена раскладка клавиатуры


1-1104087273
Shnabs
2004-12-26 21:54
2005.01.16
Работа с текстовыми файлами


1-1104516664
Cheguevara
2004-12-31 21:11
2005.01.16
Как создать компоненту в координатах клика мыши?


3-1102851825
aglar
2004-12-12 14:43
2005.01.16
Нумерация строк в DBGrid