Советы по Delphi


         

и избавит вас от работы


/p> Это будет работать как в Win 3.11, так и в Win 95 и избавит вас от работы с регистрами в Win 95. Не уверен насчет Win NT (или Win98), поскольку у меня нет возможности протестировать это дома. Имейте в виду, что все вышеописанное - только часть проблемы, т.к. приложение после всех вышеуказанных манипуляций еще должно этот файл открыть. Для этого вы должны прочесть ParamStr(1), содержащий полный путь к файлу, выбранному пользователем, и должным образом загрузить его в свое приложение.

Дополнение

продолжает эту тему:

Чтобы описание типа файлов появилось в списке "Типы файлов" Windows 98, укажите в параметре "default" ключа 'HKEY_CLASSES_ROOT\MyApp.Document\' краткое описание типа файлов (файл My App).

Чтобы ассоциированные файлы имели соответствующую приложению иконку, нужно в параметре "default" ключа 'HKEY_CLASSES_ROOT\ MyApp.Document\DefaultIcon\' указать путь к иконке. Иконки соответствующих файлов обновятся после перезагрузки Windows. Windows 98 делает это без перезагрузки системы, но как это сделать я не знаю, может быть кто-то подскажет.

Пример кода (проверено в Delphi5, Windows98):

Добавьте 'Registry' в строку Uses.

Объявите переменную 'RegFile':

var
RegFile : TRegIniFile;

begin
RegFile:=TRegIniFile.Create;

RegFile.RootKey:=HKEY_CLASSES_ROOT; //устанвливаем текущий ключ
RegFile.WriteString('.ext','','MyApp.Document'); // определяем расширение
RegFile.WriteString('MyApp.Document','','Описание файлов');//Описание ассоциированных файлов (для списка "Типы файлов" Windows 98).
RegFile.WriteString('MyApp.Document \DefaultIcon','','Путь к иконе для файлов');//устанавливаем икону для ассоциированных файлов
//Исполняемый файл (полный путь)RegFile.WriteString(' MyApp.Document \Shell\Open\Command','','исполняемый файл "%1" ');

RegFile.CloseKey;
RegFile.Free;
End;
С уважением Михаил Шпанер.

Дополнение

дополняет:

Для того, чтобы иконки соответствующих файлов обновились без перезагрузки Windows:

uses ShlObj;
......
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_FLUSH, NiL, NiL);
[000291]


Содержание  Назад