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

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

Вопросы по регистрации расширения [D7, XP]


Зм1й ©   (2006-06-23 20:50:00) 

Простите за тупые вопросы, но нигде пока не нашёл ответов. Хочу, чтобы у файлов моего типа была иконка, которая хранится в файле с екзешником (но не иконка екзешника). Возможно ли это сделать? Я пытался в реестре в DefaultIcon писать после пути через запятую различные числа, но нет эффекта. Кстати, на что эти числа указывают, если не на номер иконки? Подскажите, пожалуйста. Есть ещё вопросы, но сначала хотел бы с этим разобраться.


Зм1й   (2006-06-24 15:31:00) [1]

Спасибо!


Rial   (2006-06-24 14:43:00) [2]

function FullFileName(FileName:String):String;

function Add(Var S1:String;Const S2:String):String;
begin
If (Length(S1)>0)then S1:=S2+'\'+S1
                 else S1:=S2;
end;

Var FName:String;
   SS:TSearchRec;
begin
FName:='';
Repeat
 FindFirst(FileName,faAnyFile,SS);
 Add(FName,SS.Name);
 FindClose(SS);
 FileName:=ExtractFileDir(FileName);;
Until (Length(FileName)<=3);
Result:=FileName+FName;
end;


Если, что, извиняюсь за код:
возможно есть какая стандартная процедура.


Зм1й   (2006-06-24 14:41:00) [3]

Получилось! Оказывается, после запятой пробел не нужно было ставить :)
Всем спасибо за помощь. Но есть ещё вопрос. Когда я открываю файл (расширение которого зарегистрировал) и запускается моё приложение, то в качестве параметра ему передаётся имя файла. Так вот, это имя передаётся в ascii кодировке(если я ничего не путаю), и оно вобщем получается сокращённое, с тильдой. Вопрос в том, как из него получить нормальное имя?


Шпиён   (2006-06-24 14:37:00) [4]


> Зм1й ©   (24.06.06 14:28) [6]
>
> > Это, однако, лучше проверить с помощью какой- нибудь программы
>
> > -
> > редактора ресурсов.
>
> Какой например?

Например, Restorator -)


Rial   (2006-06-24 14:37:00) [5]


> Шпиён   (24.06.06 14:33) [8]


Я не знаю почему, но у меня на практике такой способ иногда тоже не работал.


Rial   (2006-06-24 14:35:00) [6]

Вот, выложил за неимением другой прямой ссылки:

http://www.Rial578.narod.ru/download/reshack.rar


Шпиён   (2006-06-24 14:33:00) [7]


> Rial ©   (24.06.06 14:26) [4]


> 2020 - в любом случае тут работать не должно, ИМХО.

С какой стати? Должно работать и работает. Если обратишь внимание, сначала к файлу был прикреплен ресурс с иконкой  2020.

Другое дело, что под ХР иконка "схатилась"
сразу же, а 98 пришлось перезагрузить.


Rial   (2006-06-24 14:31:00) [8]


> Зм1й ©   (24.06.06 14:26) [5]
>
> Я руками меняю(в реестр пишу), windows перезагрузил, кэш
> иконок удалил, всё равно не помогает


Никакой необходимости в перезагрузке нет,
если необходимо просто открывать файл с попощью какого -либо
приложения.
Если важна смена иконки, то нужно сообщить о смене иконки эксплореру.
Ручками это сделать просто - открыть в "свойствах папки" данные о твоем
расширении.
Если до этого у файла не было иконки, и он не был еще ни разу показан,
то все сразу будет нормально. Далее эксплорер кеширует иконку.


Зм1й   (2006-06-24 14:28:00) [9]


> Это, однако, лучше проверить с помощью какой- нибудь программы
> -
> редактора ресурсов.

Какой например?


Rial   (2006-06-24 14:26:00) [10]


> @="D:\\path\\MySuperPuperProg.exe,-2020"


Цифрой должен указываться номериконки в файле.
Главная иконка будет под номером 0, следующая - 1.
Это, однако, лучше проверить с помощью какой- нибудь программы -
редактора ресурсов.

2020 - в любом случае тут работать не должно, ИМХО.
И перед цифрой "-" не нужен.


Зм1й   (2006-06-24 14:26:00) [11]

Я руками меняю(в реестр пишу), windows перезагрузил, кэш иконок удалил, всё равно не помогает


Шпиён   (2006-06-24 13:44:00) [12]

http://forum.sources.ru/index.php?showtopic=103889&hl=

А если руками меняешь -  перезагрузи систему.


Зм1й   (2006-06-24 11:50:00) [13]

К сожалению, ничего не получается, иконка по-прежнему как у экзешника


Шпиён   (2006-06-23 22:05:00) [14]

1) создаешь файл ресурса
файл myico.rc

2020 ICON "MY.ICO"

2) компилируешь его с помощью brcc32

brcc32 -32 myico.rc myico.res

файл с иконкой (MY.ICO) должен находиться в том же каталоге, что и файл *.rc

3) подключаешь к проекту

{$R myico.res}

4) Компилируешь проект -)

5) Наслаждаешься результатом (например, так):

REGEDIT4

[HKEY_CLASSES_ROOT\myfile\DefaultIcon]
@="D:\\path\\MySuperPuperProg.exe,-2020"

[HKEY_CLASSES_ROOT\.my]
@="myfile"

[HKEY_CLASSES_ROOT\myfile\shell\open\command]
@="\"D:\\Path\\MySuperPuperProg.exe\" \"%1\""


Наверх

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