Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
в Paramstr(x) указаны все параметры от 1 до кол-ва параметров.
а еще для того чтобы изменения о типе иконки вступили в силу сразу же используй SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil); //помоему ShlObj
Ага ! Ну, предположим, с этим всю понятно (пока не разбирался). А как передать программе имя файла, ассоциированного с ним ? Прога то запускается, а файл не открывается...
procedure TFormMain.RegData(Path: String);
var
R : TRegIniFile;
begin
R := TRegIniFile.Create('');
with R do begin
RootKey := HKEY_CLASSES_ROOT;
WriteString('.srt','','srt');
WriteString('srt','','SRT-презентация');
WriteString('srt\DefaultIcon','',Path+'srttu\Player.exe,0');
WriteString('srt\Shell\Open\command','', Path+'srttu\Player.exe %1');
Free;
end;
R := TRegIniFile.Create('');
with R do begin
RootKey := HKEY_CLASSES_ROOT;
WriteString('.gud','','gud');
WriteString('gud','','GUD-презентация');
WriteString('gud\DefaultIcon','',Path+'hiper_srttu\hiper_player.exe,0');
WriteString('gud\Shell\Open\command','', Path+'hiper_srttu\hiper_player.exe %1');
Free;
end;
end;
В реестре в HKEY_CLASSES_ROOT создай раздел с именем ".TmBase". Присвой значение по умолчанию, например MyFiletype. Затем здесь же (HKCR) создай раздел с именем MyFiletype, значение по умолчанию - наименование типа файла. В этом разделе создай еще подраздел DefaultIcon, значение - путь и имя файла с иконкой, напр.: C:\Program Files\MyProg\Prog.exe,0 - первый значек из exe-файла или C:\Icon1.ico. Собственно все. Если в разделе MyFiletype создать еще подраздел Shell, то там можно описывать команды для контекстного меню.
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.