Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

иконка для нового типа файлов [D6, D7, 2000, XP, 2003]


Officeman ©   (2007-06-19 08:44:00) 

Добрый день уважаемые мастера!
При первом запуске Приложение регистрирует в реестре виндовс собственный тип файлов *.pl    изображение иконки собственного типа файлов использую такое-же как у самой программы. Как использовать другие? (из внешнего файла icon2.ico)


Officeman   (2007-06-19 10:47:00) [1]

тут ?

Reg.OpenKey('TXT2fileDefaultIcon', True);
Reg.WriteString('',??????????????????????????????  + ',0');


??????? - путь к  файлу иконки ?


Officeman   (2007-06-19 10:37:00) [2]

понято. ;)
ниже пример взятый из интернета.
объясните где прописать путь к изображению иконки


----- Регистрация своего типа файлов -----------
uses Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey('.txt2' , True);
Reg.WriteString('', 'TXT2file');
Reg.CloseKey;
Reg.OpenKey('TXT2fileDefaultIcon', True);
Reg.WriteString('', Application.ExeName + ',0');
Reg.CloseKey;
Reg.OpenKey('TXT2fileshellopencommand', True);
Reg.WriteString('', Application.ExeName + ' "%1"');
Reg.CloseKey;
Reg.Free;
end;
------------------------------------------------
---------- Пункт в контекстном меню ------------
uses Registry;

procedure AddToContext(FileExt, text : string);
// FileExt - расширение типа файлов без точки вначале!
var R : TRegistry;
s : string;
begin
r := TRegistry.Create;
r.RootKey := HKEY_LOCAL_MACHINE;
r.OpenKey('SoftwareClasses',false);
if not (r.KeyExists('.'+FileExt)) then
begin
ShowMessage('Такой тип файлов не найден.');
Exit;
end
else
r.OpenKey('.'+FileExt,true);
s := r.ReadString('');
ShowMessage(s);
r.CloseKey;
r.OpenKey('SoftwareClasses',false);
r.OpenKey(s,true);
r.OpenKey('shell',true);
r.OpenKey('Crypt', true);
r.WriteString('',text)
r.OpenKey('command',true);
r.WriteString('',Application.ExeName + '"%1"');
r.CloseKey;
r.Free;
end;


Однокамушкин   (2007-06-19 09:10:00) [3]

Да точно так же, в общем-то... только вместо имени exe-файла надо писать в реестр имя ico-файла...


Наверх

Титульная страница Поиск, карта сайта Написать письмо