Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2008, 15:27   #1
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
Восклицание Ассоциировать файлы

Подскажите как ассоциировать файлы,сделал текстовый редактор
и в настройках нужно сделать окно для ассоциации файлов,куда в реестре
их надо прописать и как?
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 25.02.2008, 15:45   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да, в Hkey_Classes_Root создай свою "папку" например .myext (где myext - расширение твоего файла, который ты хочеш чтоб открывался твоей прогой) и в нем создай ветку file\shell\open\command - путь к проге если не ошибаюсь.

А в прочим на Делфи Ворлд есть пример:
Код:
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;
I'm learning to live...

Последний раз редактировалось Stilet; 25.02.2008 в 15:48.
Stilet вне форума Ответить с цитированием
Старый 25.02.2008, 19:33   #3
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Что то по этому коду не получается,в реестре прописался а вот когда
кликаешь на текстовом файле то открывается все равно другим,но
если на текстовом файле кликнуть правой кнопкой и выбрать "открыть с помощью" то там моя программа появилась и больше ни чего
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 25.02.2008, 23:47   #4
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

С любым расширением ассоциируется,а с "txt" нет,помогите может у кого
есть проверенный исходник,нужно что бы при нажатии на button регистрировать в реестре расширение файла "txt" , и моя
программа при клике на файл открывала его
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 26.02.2008, 00:47   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

"Достали" уже... Как будто я так - для своего самолюбия выложил наиболее интересные моменты в расширяемом сборнике на сайте форума...
Оттуда:
Код:
Реестр. Свое расширение

//use the registry to register your own filetype. uses registry; 

procedure tform1.registerfiletype(prefix:string; exepfad:string); 
var reg:tregistry; 
begin 
reg:=tregistry.create; 
reg.rootkey:=hkey_classes_root;
//create a new key --> .pci 
reg.openkey('.'+prefix,true);
//create a new value for this key --> pcifile 
reg.writestring('',prefix+'file');
reg.closekey; //create a new key --> pcifile 
reg.createkey(prefix+'file'); 
//create a new key pcifile\defaulticon 
reg.openkey(prefix+'file\defaulticon',true);
//and create a value where the icon is stored --> c:\project1.exe,0 reg.writestring('',exepfad+',0');
reg.closekey; 
reg.openkey(prefix+'file\shell\open\command',true);
//create value where exefile is stored --> c:\project1.exe "%1" 
reg.writestring('',exepfad+' "%1"'); reg.closekey; 
reg.free;
end;
procedure tform1.button1click(sender: tobject); 
begin 
registerfiletype('pci','c:\project1.exe'); 
end;
mihali4 вне форума Ответить с цитированием
Старый 26.02.2008, 23:52   #6
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Подскажите что не правильно делаю,все компилируется а программа
на текстовый файлы не реагирует,не могу сделать свою программу по
умолчанию


procedure tform1.registerfiletype(prefix:stri ng; exepfad:string);
var reg:tregistry;
begin
reg:=tregistry.create;
reg.rootkey:=hkey_classes_root;
//create a new key --> .pci
reg.openkey('.'+prefix,true);
//create a new value for this key --> pcifile
reg.writestring('',prefix+'file');
reg.closekey; //create a new key --> pcifile
reg.createkey(prefix+'file');
//create a new key pcifile\defaulticon
reg.openkey(prefix+'file\defaultico n',true);
//and create a value where the icon is stored --> c:\project1.exe,0 reg.writestring('',exepfad+',0');
reg.closekey;
reg.openkey(prefix+'file\shell\open \command',true);
//create value where exefile is stored --> c:\project1.exe "%1"
reg.writestring('',exepfad+' "%1"'); reg.closekey;
reg.free;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
registerfiletype('txt','k:\Текстови к\Letter.exe');
end;
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как ассоциировать индексное поле в paraox Serega_1988 БД в Delphi 5 12.06.2008 18:46
Ассоциировать иконку с файлом xes БД в Delphi 0 19.05.2008 22:17
Файлы BR@BUS Общие вопросы Delphi 2 13.05.2008 18:29
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53