Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.033 c
6-1098805375
denissoft
2004-10-26 19:42
2005.01.16
Количество отправленных полученных байт.


1-1104314800
grigory
2004-12-29 13:06
2005.01.16
Crystal reports в DELPHI!


4-1101630782
Alexis
2004-11-28 11:33
2005.01.16
Найти принадлежащие процессу окна...


1-1104141949
Vyacheslav
2004-12-27 13:05
2005.01.16
Как определить тип операционной системы ???


14-1104326972
Рамиль
2004-12-29 16:29
2005.01.16
Настройка eMule в локальной сетке





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский