|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Регистрация нового типа файла
Доброе время суток!
Проблема вообщем вот в чем! Пытаюсь зарегестрировать свой тип файлов с помощью следующей ф-и: Код:
procedure TForm1.RegisterFileType(ext: string; App: string; IconSource: String; IconType:String); var R : TRegIniFile; begin R := TRegIniFile.Create(''); with R do begin RootKey := HKEY_CLASSES_ROOT; WriteString('.'+ext,'',ext+'file'); WriteString(ext+'file\shell\open\command', '', '"'+App+'" "%1"'); WriteString(ext+'file\DefaultIcon', '', IconSource+', '+IconType); end; R.Free; end; Переменная IconSource собержит адрес dll-файла в котором лежат иконки. IconType соответственно (я так думал) - идентификатор иконки. Все работает, только иконка из dll-файла не меняется. Вообщем скорее всего берется только первая иконка. Как вообще должен выглядеть этот ключь в реестре или каким должна быть переменная IconType? Мой dll-файл содержит иконку с идентификатором HTML_Ico и иконку INI_Ico. И еще одна неудобная весщь: все это дело обновляется после перезагрузки системы... Можно регистрировать тип файла без перезагрузки? Например через WinApi? |
#2
|
||||
|
||||
Цитата:
Код:
IconSource+', '+IconType Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
#3
|
|||
|
|||
Цитата:
Я тоже думаю, что проблема в этом. Просто у меня на то что стоит после запятой реакции нет... Что это вообще за двойка после запятой. Это какой-то порядковый номер иконки (независящий от ее идентификатора в dll-файле)? Или таким должен быть ее идентификатор? |
#4
|
||||
|
||||
Цитата:
Это порядковый номер иконки в библиотеке, номера можно посмотреть каким-нибудь редактором ресурсов |
#5
|
|||
|
|||
Цитата:
Странно, неужели ошибка только из-зи пробела "IconSource+', '+IconType"? Кстати, а в Delphi (Rad Studio) еще есть редактрр иконок? Вроде когда то был, а щас я его найти не могу... Да, может кто-то знает, как сделать регистрайию типа файла не через реестр а с помощью WinApi. Должно же что-то быть! А то через реестр все изменения вступают в силу только после перезагрузки... |
#6
|
||||
|
||||
Цитата:
Неа, просто надо уведомить систему об изменении параметров соотвествующим сообщением, вроде так, если не ошибась, на память сообщение не помню, но имеет вид вроде: СендМессаже(ЧанжеСистемМетрикс) |