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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2010, 15:00   #1
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию Реестр - Необходимо изменить действие по умолчанию для .reg файлов(«Изменить» вместо «Объединить»).

Вопрос не совсем по программированию, точнее, совсем не по программированию.

Необходимо изменить действие по умолчанию для .reg файлов(«Изменить» вместо «Объединить»).
На этой странице я была, но, полагаю, раз уж лабораторная про работу с реестром, то и задание нужно делать в самом реестре.
Ну нашла я ветку HKEY_CLASSES_ROOT\.reg, но там только значение по умолчанию(regfile) и внутри какой-то HKEY_CLASSES_ROOT\.reg\PersistentHa ndler, но что-то мне не кажется, что это как-то связано с действиями по умолчанию.

Подскажите, пожалуйста, какой ключ мне нужно туда добавить? Или что поменять? Или я вообще не там ищу?

И еще один вопрос: как добавить в контекстное меню файлов .bmp команды: сжать, не сжимать (Первая из них устанавливает файлу атрибут сжатый, вторая его снимает)? Тоже вроде просмотрела все ключи реестра, отвечающий за данный тип файлов, но ничего похожего не нашла.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 11.01.2010, 15:15   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

назначение действий на клик по файлу или редактирование находятся в ключах раздела HKEY_CLASSES_ROOT: ext+'file\shell\open\command' и ext+'file\shell\edit\command' соответственно, где ext - это расширение, например reg без точки, т.е.: regfile или avifile...
...а вот это HKEY_CLASSES_ROOT\.reg - всего лишь регистрация расширения.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 11.01.2010, 15:24   #3
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

О, спасибо! В HKEY_CLASSES_ROOT\regfile\shell нужно значение по умолчанию поставить в edit

Но второй вопрос про .bmp остается открытым (как добавить в контекстное меню файлов .bmp команды: сжать, не сжимать)
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать

Последний раз редактировалось ACE Valery; 11.01.2010 в 15:46.
ACE Valery вне форума Ответить с цитированием
Старый 11.01.2010, 16:59   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

ммм... у меня такого в контекстном меню на bmp файле в проводнике нету пункта, а в тотале - есть слово "упаковка", но оно является функционалом самого тотала... вообще в контекстное меню можно добавить через HKEY_CLASSES_ROOT в ключах "*\Shell\ваш ключ" со строкой которую хотите, чтоб высвечивалась в контекстном меню и еще под-ключа "*\Shell\ваш ключ\command".

покажу кодом и скрином, так будет понятнее...
Код:
//добавление в контекстное меню-
procedure context(p:boolean; txt:shortstring);
var hr:tregistry;
begin
 hr:=tregistry.Create;
 hr.RootKey:= $80000000;
 //
 if p then begin
  hr.OpenKey('*\Shell\ramedia',true);
  hr.WriteString('','ramedia');
  hr.WriteString('',txt); // txt - ваш текст в контекстном меню
  hr.CloseKey;
  //
  hr.OpenKey('*\Shell\ramedia\command',true);
  hr.WriteString('','command');
  hr.WriteString('',paramstr(0)+' "1%"');
  hr.CloseKey;
 end else begin
  hr.DeleteKey('*\Shell\ramedia');
  hr.CloseKey;
 end;
 //
 hr.Free
end;
как видите мы создаем некий ключ (все равно с каким названием), он появляется в реестре и к этому ключу подключ параметров запуска той утилиты (или функции) которая должна выполняться при выборе нашего пункта в контекстном меню...
Изображения
Тип файла: jpg скрин.jpg (40.0 Кб, 167 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 11.01.2010 в 17:02.
raxp вне форума Ответить с цитированием
Старый 12.01.2010, 15:53   #5
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

ЯТТААА!!! Я это сделала. Итак, если кому-нибудь вдруг понадобится:
чтобы установить сжатие для файла, в "*\Shell\ваш ключ\command" нужно в параметре по умолчанию написать значение: compact.exe /C "%1"
для отмены сжатия вместо /C используется /U

raxp, еще раз большое спасибо
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 12.01.2010, 16:05   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

поздравляю, всегда рад
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 30.11.2010, 23:19   #7
BlackEric
Новичок
Джуниор
 
Регистрация: 20.06.2010
Сообщений: 1
По умолчанию

raxp,
я правильно понимаю, что в этом случае выбранный файл будет передан в программу как параметр командной строки? И соответственно мне в моей программе нужно делать поддержку работы с командной строкой?

И что означает "%1"?

Сам разобрался.
Да работает через параметры командной строки.

Registering an Application to a URL Protocol - что означает "%1"? и т.д.

Последний раз редактировалось BlackEric; 30.11.2010 в 23:32. Причина: Добавление
BlackEric вне форума Ответить с цитированием
Старый 30.11.2010, 23:33   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну вообще то всегда открытие файла из шелла передает в ком строке путь файла.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить формулу olimpus Microsoft Office Excel 5 12.12.2009 05:45
Объединить информацию двух файлов с разной датой в один Язычник Microsoft Office Excel 1 19.11.2009 15:56
Как изменить скин для TSRichViewEdit используя AlphaSkins chandrasecar Компоненты Delphi 2 13.02.2009 16:07
Слить-объединить несколько файлов в один SLP Microsoft Office Excel 2 19.11.2008 18:13
Как изменить атрибуты Файлов? Volkogriz Общие вопросы Delphi 1 07.11.2007 18:27