Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.022 c
14-1103870137
Жук
2004-12-24 09:35
2005.01.16
Сломали ?


9-1096010438
Warchief
2004-09-24 11:20
2005.01.16
Произвольные текстурные координаты кадра в PD3


14-1104087205
Hypercube
2004-12-26 21:53
2005.01.16
Самогон


1-1103923596
Drema
2004-12-25 00:26
2005.01.16
вывод информации


1-1104818366
Глупый_Чайник:(
2005-01-04 08:59
2005.01.16
Вывести Реал в Стринг




   Наверх