Привет всем! У меня есть такой вопрос: 1. Как на один тип файла прописать, програмно, отдельно редактор и отдельно программу исполняющую его? Чтоб формулировка вопроса стала понятной приведу пример: Файл *.bmp в меню на этот файл есть следующее: "Изменить" - Открывается Paint "Просмотр" - Открывается программа просмотра
Как сделать похожее?
Сразу задам по этой же теме следующее: 2. Как сделать команду по умолчанию (*.bmp по умолчанию "просмотр")? 3. Как сделать особый ситаксис запуска файла по маске (допустим чтоб имя файла указывалось во втором параметре а в первом стояла стандарно строчка "+z")? 4. Как связать с определённым типом файла определённую иконку?
Прошу помощи очень надо, если кто может участок кода! Заранее спасибо.
Fang
17.12.2005 15:23
Не совсем понял вопрос. Ты хочешь сделать чтобы твоя программа открывала файлы с определёнными расширениями (допустим bmp)? Если да, то необходимо было сначала попробовать самому поискать: [img]http://search.msdn.microsoft.com/search/results.aspx?qu=Shell+Extensions&View=msdn&st=b[/img] [img]http://www.yandex.ru/yandsearch?rpt=rad&text=%CA%E0%EA+%E7%E0%F0%E5%E3%E8%F1%F2%F0%E8%F0%EE%E2%E0%F2%FC+%F0%E0%F1%F8%E8%F0%E5%ED%E8%E5+%2B+Delphi[/img]
А если нет тогда не знаю
Altair
17.12.2005 19:24
Fang, а ты перед тем как посылать людей в поиск, научись понимать что им надо! #$# PaVeL #$#, теюе надо задать файловые ассоциации. В DRKB все есть
Цитата
Как зарегистрировать свой пункт в меню для моего типа файлов?
uses
Registry;
procedure AddFileMenue(FilePrefix, Menue, Command: string);
var
reg: TRegistry;
typ: string;
begin
reg := TRegistry.Create;
with reg dobegin
RootKey := HKEY_CLASSES_ROOT;
OpenKey('.' + FilePrefix, True);
typ := ReadString('');
if typ = ''thenbegin
typ := Fileprefix + 'file';
WriteString('', typ);
end;
CloseKey;
OpenKey(typ + '\shell\' + Menue + '\command', True);
WriteString('', command + ' "%1"');
CloseKey;
Free;
end;
end;
procedure DeleteFileMenue(Fileprefix, Menue: string);
var
reg: TRegistry;
typ: string;
begin
reg := TRegistry.Create;
with reg dobegin
RootKey := HKEY_CLASSES_ROOT;
OpenKey('.' + Fileprefix, True);
typ := ReadString('');
CloseKey;
OpenKey(typ + '\shell', True);
DeleteKey(Menue);
CloseKey;
Free;
end;
end;
{ Example}procedure TForm1.Button1Click(Sender: TObject);
begin
AddFileMenue('rtf', 'Edit with Notepad', 'C:\Windows\system\notepad.exe');
{
If you now click with the right mousebutton on a *.rtf-file then
you can see a Menuepoint: "Edit with Notepad".
When Click on that point Notepad opens the file.
}end;
procedure TForm1.Button2Click(Sender: TObject);
begin{
Undo your changes in the Registry:
}
DeleteFileMenue('rtf', 'Edit with Notepad');
end;
Есть еще кое что
Цитата
Как получить список всех расширений и их ассоциаций?
как ты уже понял все файловые ассоциации храняться в ветке HKEY_CLASSES_ROOT реестра. работай с ним, скорее всего тебе надо искать информацию по реестру windows...
#$# PaVeL #$#
25.12.2005 13:54
Как в пункт меню добавить иконку? Как в WinRar`е допустим.
Gothic_Snake
25.12.2005 19:15
Цитата(#$# PaVeL #$# @ 25.12.2005 16:54)
Как в пункт меню добавить иконку? Как в WinRar`е допустим.
Было бы логично открыть редактор реестра, посмотреть раздел, отвечающий за файлы с разрешением *.rar и стенуть оттуда значение, отвечающую за иконку. Только не забудь указать путь к своей иконке!