|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.05.2007, 14:54 | #1 |
Форумчанин
Регистрация: 24.01.2007
Сообщений: 323
|
Ассоциирование программы с типом файлов
как зделать так, чтобы програма асоцыировалася с некоторыми розшерениями файлов?
Например, чтобы все файлы *.Ght открывались только через мою прогу и ещё вопрос, Как поместить в контекстное меню визновз свою строку, например ' Запустить с помощю <моя прога> ', и чтобы при щелчке на этот текст открывалася моя прога)))
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
|
20.05.2007, 16:04 | #2 |
Участник клуба
Регистрация: 15.02.2007
Сообщений: 1,112
|
Вот смотрю и думаю, а зачем на форуме поиск. Им ведь "никто не пользуется", так может предложить админу убить "ненужное", а мы будем время от времени отвечать на одни и те же вопросы. Постепенно рейтинг вопросов наберётся и если, скажем, вопрос задают реже, чем раз в неделю, то в топку сразу его. Вот опять за два месяца третий раз одно и то же. Раньше я на это уже дважды отвечал. Надоело.
Ответ 1 Ответ 2 |
20.05.2007, 17:50 | #3 |
Форумчанин
Регистрация: 24.01.2007
Сообщений: 323
|
procedure TForm1.Button1Click(Sender: TObject);
var R : TRegIniFile; begin R := TRegIniFile.Create(''); with R do begin RootKey := HKEY_CLASSES_ROOT; WriteString('.myext','','MyExt'); WriteString('MyExt','','Some description of MyExt files'); WriteString('MyExt\DefaultIcon','', 'C:\MyApp.Exe,0 '); WriteString('MyExt\Shell','','This_ Is_Our_Default_ Action'); WriteString('MyExt\Shell\First_Acti on', '','This is our first action'); WriteString('MyExt\Shell\First_Acti on\command','', 'C:\MyApp.Exe /LotsOfParamaters %1'); WriteString('MyExt\Shell\This_Is_Ou r_Default_Actio n','', 'This is our default action'); WriteString('MyExt\Shell\This_Is_Ou r_Default_Actio n\command', '','C:\MyApp.Exe %1'); WriteString('MyExt\Shell\Second_Act ion', '','This is our second action'); WriteString('MyExt\Shell\Second_Act ion\command', '','C:\MyApp.Exe /TonsOfParameters %1'); Free; end; end; вот это ришает проблему с открытием файла? Во первых я много чего здесь не понимаю А во вторых, ещё мне нужно чтобы было при нажатии правой кнопки мыши по файлу , который я както (досих пор не понял как) асоциировал под свою прогу открывалось контекстное меню с строкой , например "Play in Моя прога", а не "открыть с помощю.."
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
|
20.05.2007, 18:09 | #4 |
Участник клуба
Регистрация: 15.02.2007
Сообщений: 1,112
|
Таки да, это действительно решает проблему с открытием файла путём его регистрации в системе.
Щёлкаешь левой кнопкой и файл открывается, щёлкаешь правой и видишь "Открыть" или что там ещё напишешь. Я в свою очередь не понимаю, чего не понимаешь ты. Остаётся всего лишь заменить .myext на .Ght, Some description of MyExt files на описание твоего формата и т.д. Сам работал с этим образчиком. Всё получается. Более того, можно назначать не по одному, а, как тывидишь в примере 3 а при необходимости и больше действий |
20.05.2007, 18:28 | #5 |
Форумчанин
Регистрация: 24.01.2007
Сообщений: 323
|
но у меня не только одно розширение поддержует програма, а и много других,
Где их описывать?
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
|
20.05.2007, 18:30 | #6 |
Участник клуба
Регистрация: 15.02.2007
Сообщений: 1,112
|
Можешь повторить действия для каждого из разширений организовав цикл, если их много или просто продублировать нужные строки, если расширений два-три
|
20.05.2007, 20:55 | #7 |
.NET-чик
Форумчанин
Регистрация: 24.03.2007
Сообщений: 569
|
А попрбуй сделать так:
Создать свое расширени myproga а всем другим расширениям которые должна открывать твоя прога придай открывать myproga. а уже соответственно в myproga и все остальное типа там открыть, закрыть З.Ы. сам не проверял. посмотри как в винампе работает в реестре
"Разработка под веб - как работа с пылесосом: нихрена не прикольно, но засасывает"
Мо маленький городок |
01.06.2007, 18:33 | #8 |
Форумчанин
Регистрация: 24.01.2007
Сообщений: 323
|
создал асоцыацыю и деасоцыацыю :
procedure TOPTIONS.asociationON(mask:string); begin R := TRegIniFile.Create(''); with R do begin RootKey := HKEY_CLASSES_ROOT; WriteString(mask,'','MyExt'); WriteString('MyExt','','Some description of MyExt files'); WriteString('MyExt\DefaultIcon','', 'C:\MyApp.Exe,0 '); WriteString('MyExt\Shell','','Воспр оізвести(MusON)'); WriteString('MyExt\Shell\Default',' ', 'Воспроізвести(MusON)'); WriteString('MyExt\Shell\Default\co mmand', '','C:\MyApp.Exe %paramstr(1)%1'); WriteString('MyExt\Shell\First_Acti on', '','Подивиться інфу про файл'); WriteString('MyExt\Shell\First_Acti on\command','', 'C:\MyApp.Exe /LotsOfParamaters %1'); Free; end; end; procedure TOPTIONS.asociationOFF(mask:string) ; begin R := TRegIniFile.Create(''); with R do begin RootKey := HKEY_CLASSES_ROOT; //Как удалить розшырение из реестра??? чтобы асоцыацыи небыло! Free; end; end; и после выполнения первой процэдуры, не хочет открыватся файл через мою прогу, выбивает ошыбку
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
DBGrid и поля с типом MEMO | doncova1 | БД в Delphi | 4 | 27.03.2009 01:20 |
Запуск файлов программы | d_slava | Помощь студентам | 2 | 17.06.2008 11:22 |
Работа с типом Record | TheNovice | Помощь студентам | 4 | 28.02.2007 17:52 |
Создание программы для запароливания файлов | шолku | Общие вопросы Delphi | 14 | 05.01.2007 08:32 |