Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2007, 14:54   #1
ZhekON
Форумчанин
 
Аватар для ZhekON
 
Регистрация: 24.01.2007
Сообщений: 323
По умолчанию Ассоциирование программы с типом файлов

как зделать так, чтобы програма асоцыировалася с некоторыми розшерениями файлов?
Например, чтобы все файлы *.Ght открывались только через мою прогу

и ещё вопрос,

Как поместить в контекстное меню визновз свою строку, например
' Запустить с помощю <моя прога> ', и чтобы при щелчке на этот текст открывалася моя прога)))
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
ZhekON вне форума Ответить с цитированием
Старый 20.05.2007, 16:04   #2
Fainder
Участник клуба
 
Регистрация: 15.02.2007
Сообщений: 1,112
По умолчанию

Вот смотрю и думаю, а зачем на форуме поиск. Им ведь "никто не пользуется", так может предложить админу убить "ненужное", а мы будем время от времени отвечать на одни и те же вопросы. Постепенно рейтинг вопросов наберётся и если, скажем, вопрос задают реже, чем раз в неделю, то в топку сразу его. Вот опять за два месяца третий раз одно и то же. Раньше я на это уже дважды отвечал. Надоело.
Ответ 1
Ответ 2
Fainder вне форума Ответить с цитированием
Старый 20.05.2007, 17:50   #3
ZhekON
Форумчанин
 
Аватар для ZhekON
 
Регистрация: 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 Моя прога", а не "открыть с помощю.."
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
ZhekON вне форума Ответить с цитированием
Старый 20.05.2007, 18:09   #4
Fainder
Участник клуба
 
Регистрация: 15.02.2007
Сообщений: 1,112
По умолчанию

Таки да, это действительно решает проблему с открытием файла путём его регистрации в системе.
Щёлкаешь левой кнопкой и файл открывается, щёлкаешь правой и видишь "Открыть" или что там ещё напишешь.
Я в свою очередь не понимаю, чего не понимаешь ты. Остаётся всего лишь заменить .myext на .Ght, Some description of MyExt files на описание твоего формата и т.д.
Сам работал с этим образчиком. Всё получается. Более того, можно назначать не по одному, а, как тывидишь в примере 3 а при необходимости и больше действий
Fainder вне форума Ответить с цитированием
Старый 20.05.2007, 18:28   #5
ZhekON
Форумчанин
 
Аватар для ZhekON
 
Регистрация: 24.01.2007
Сообщений: 323
По умолчанию

но у меня не только одно розширение поддержует програма, а и много других,
Где их описывать?
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
ZhekON вне форума Ответить с цитированием
Старый 20.05.2007, 18:30   #6
Fainder
Участник клуба
 
Регистрация: 15.02.2007
Сообщений: 1,112
По умолчанию

Можешь повторить действия для каждого из разширений организовав цикл, если их много или просто продублировать нужные строки, если расширений два-три
Fainder вне форума Ответить с цитированием
Старый 20.05.2007, 20:55   #7
OrdJONY
.NET-чик
Форумчанин
 
Аватар для OrdJONY
 
Регистрация: 24.03.2007
Сообщений: 569
По умолчанию

А попрбуй сделать так:
Создать свое расширени myproga а всем другим расширениям которые должна открывать твоя прога придай открывать myproga. а уже соответственно в myproga и все остальное типа там открыть, закрыть
З.Ы. сам не проверял. посмотри как в винампе работает в реестре
"Разработка под веб - как работа с пылесосом: нихрена не прикольно, но засасывает"
Мо маленький городок
OrdJONY вне форума Ответить с цитированием
Старый 01.06.2007, 18:33   #8
ZhekON
Форумчанин
 
Аватар для ZhekON
 
Регистрация: 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;

и после выполнения первой процэдуры, не хочет открыватся файл через мою прогу, выбивает ошыбку
Всё проще чем вы думаете, нужно только правильно подойти к тому или иному вопросу?
ZhekON вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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