Форум: "Начинающим";
Текущий архив: 2009.05.24;
Скачать: [xml.tar.bz2];
ВнизОтображение иконки ассоциированного файла Найти похожие ветки
← →
D@nger (2009-03-27 14:19) [0]Имеется иконка содержащая два изображения... одно для отображения самого exe файла, а вторая для отображения ассоциированного с приложением файла...
иконку прикрепил к проекту через опции проекта...
в реестре создал ключ DefaultIcon и в нем параметр "По умолчанию" со значением "путь к exe файлу",0 ...
сам exe файл отображается с правильной иконкой а вот ассоциированные файлы отображаются с этой же иконкой ... как указать в реестре что ассоциированные файлы отображать со второго изображения в ico файле? пробовал менять значение на "путь к exe файлу",1 .... но иконка не меняется...
← →
clickmaker © (2009-03-27 14:28) [1]> путь к exe файлу",1 .... но иконка не меняется
1 - это индекс отдельной иконки в файле ресурсов
← →
D@nger (2009-03-27 14:30) [2]
> 1 - это индекс отдельной иконки в файле ресурсов
ааа... понял.. т.е. надо вторую иконку прикрепить к проекту и уже указать в реестре 1 ....
← →
D@nger (2009-03-27 14:46) [3]чето я напутал... иконки местами поменялись...(( .... как указать в ресурсах если несколько иконок.. что эта иконка для exe файла?
← →
D@nger (2009-04-09 09:00) [4]Вобщем разобрался я с этим вопросом.. если кому интересно вот мое решение...
Заходим в Delphi в меню Project->Resources (у меня этот пункт есть в D7? у кого то почему то нет. если нет то добавляем ресурс через brcc32.exe) и добавлем необходимую иконку. Если у вас уже добавлена иконка к приложению, то называем добавленный ресурс с буквы которая по алфавиту идет после латинской буквы M (MainIcon), например N1. Теперь остается указать в реестре системы какую иконку отображать на ваш тип файла... приведу готовую процедуру:
procedure REGext; - регистрация расширения в системе
var reg:TRegistry;
tmp:string;
begin
reg:=Tregistry.Create;
try
reg.RootKey:=HKEY_CLASSES_ROOT;
reg.CreateKey(".tst");
reg.OpenKey(".tst",true);
reg.WriteString("","TST.Document");
reg.CloseKey;
hide;
MessageDlg("Файл *.tst успешно зарегистрирован в системе!", mtInformation, [mbOk], 0);
except
MessageDlg("Ошибка при регистрации расширения"+#13
+"Возможно у вас не достаточно прав для внесения изменений в реестр.", mtError, [mbOk], 0);
abort;
end;
reg.Free;
end;
Для отмены регистрации в системе следующая процедура:
procedure TFsettings.UnREGext;
var reg:TRegistry;
begin
reg:=Tregistry.Create;
try
reg.RootKey:=HKEY_CLASSES_ROOT;
if reg.KeyExists(".tst") then reg.DeleteKey(".tst");
Reg.RootKey:=HKEY_CURRENT_USER;
if reg.OpenKey("Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts",true) then if reg.KeyExists(".tst") then reg.DeleteKey(".tst");
if reg.OpenKey("Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs",true ) then if reg.KeyExists(".tst") then reg.DeleteKey(".tst");
Reg.RootKey:=HKEY_LOCAL_MACHINE;
if reg.OpenKey("SOFTWARE\Classes",true) then if reg.KeyExists(".tst") then reg.DeleteKey(".tst");
hide;
MessageDlg("Регистрация файлов *.TST успешно отменена!", mtInformation, [mbOk], 0);
except
MessageDlg("Ошибка при отмене регистрации расширения"+#13
+"Возможно у вас не достаточно прав для внесения изменений в реестр.", mtError, [mbOk], 0);
abort;
end;
reg.Free;
end;
Далее нам нужно указать путь к приложению и какую иконку отображать в експлорере:
procedure CheckPathReg;
var reg:Tregistry;
f:string;
begin
reg:=Tregistry.Create;
try
reg.RootKey:=HKEY_CLASSES_ROOT;
if not reg.KeyExists("TST.Document\shell\open\command")then
reg.CreateKey("TST.Document\shell\open\command");
reg.OpenKey("TST.Document\shell\open\command",true);
f:=application.ExeName+" "%1"";
reg.WriteString("",f);
reg.CloseKey;
if not reg.KeyExists("TST.Document\DefaultIcon")then
reg.CreateKey("TST.Document\DefaultIcon");
reg.OpenKey("TST.Document\DefaultIcon",true);
f:=application.ExeName+",1"; {1 - индекс иконки в exe файле}
reg.WriteString("",f);
reg.CloseKey;
except end;
reg.Free;
end;
Может быть я написал элементарные вещи..но новичкам я думаю может пригодится...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.05.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c