Вниз
Скачать: 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-1104388809
Пользователь
2004-12-30 09:40
2005.01.16
Драйверок для HP LaserJet 5Si


1-1104410844
Fay
2004-12-30 15:47
2005.01.16
CALLBACK - это stdcall или что?


8-1097133328
Ozone
2004-10-07 11:15
2005.01.16
Audio поток из AVI (VfW.pas)


1-1104653006
speed
2005-01-02 11:03
2005.01.16
ссылки в Delphi


9-1095791473
rs.falcon
2004-09-21 22:31
2005.01.16
Новая версия DoomForever




   Наверх