Привет всем! У меня есть такой вопрос: 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 do begin RootKey := HKEY_CLASSES_ROOT; OpenKey('.' + FilePrefix, True); typ := ReadString(''); if typ = '' then begin 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 do begin 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 и стенуть оттуда значение, отвечающую за иконку. Только не забудь указать путь к своей иконке!