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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2009, 23:39   #1
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию Контекстное меню

Мой текстовый редактор стал для текстовых файлов по умолчанию,но раньше при нажатии на рабочем столе правой кнопкой мыши открывалось контекстное меню,и там на вкладке создать можно было выбрать "блокнот" для создания
текстового файла. Подскажите как програмно можно добавить в это меню свою программу для создания текстового файла,
И как програмно вернуть по умолчанию Блокнот,но не просто связать его с текстовыми файлами,а что бы он как и раньше отоброжался в контекстном меню.
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 02.06.2009, 00:49   #2
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию

HKEY_CURRENT_USER\Software\Microsof t\Windows\CurrentVersion\Explorer\D iscardable\PostSetup\ShellNew

В реестре находится список новых файлов.

Аналогичный вопрос - будет ли работать такой код:

Код:
uses ..., Registry;

...

var
  RegIni : TRegIniFile;
begin
  RegIni := TRegIniFile.Create('Software');
  RegIni.RootKey:=HKEY_CURRENT_USER;
  RegIni.OpenKey('Software', true);
  RegIni.OpenKey('Microsoft', true);
  RegIni.OpenKey('Windows', true);
  RegIni.OpenKey('CurrentVersion', true);
  RegIni.OpenKey('Explorer', true);
  RegIni.OpenKey('Discardable', true);
  RegIni.OpenKey('PostSetup', true);
  RegIni.WriteString('ShellNew', '***','lisp.lsp');  //Что сюда нужно записать точно?
  RegIni.Free;
end;

Последний раз редактировалось BaronTreep; 02.06.2009 в 04:07.
BaronTreep вне форума Ответить с цитированием
Старый 02.06.2009, 10:48   #3
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Цитата:
Сообщение от Михаил Юрьевич Посмотреть сообщение
Мой текстовый редактор стал для текстовых файлов по умолчанию,но раньше при нажатии на рабочем столе правой кнопкой мыши открывалось контекстное меню,и там на вкладке создать можно было выбрать "блокнот" для создания
текстового файла. Подскажите как програмно можно добавить в это меню свою программу для создания текстового файла,
И как програмно вернуть по умолчанию Блокнот,но не просто связать его с текстовыми файлами,а что бы он как и раньше отоброжался в контекстном меню.
Немного теории с применением реестра : http://forum.sources.ru/index.php?showtopic=272244
Там обрати внимание на приведенную функцию получения каталога Windows - убережешь себя от глюков при использовании ...
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 02.06.2009, 12:55   #4
Hottabych
Форумчанин
 
Регистрация: 13.01.2008
Сообщений: 140
По умолчанию

Еще один вопрос: как передать своей программе параметры?
Например, выделяем файлы и через контекстное меню проводника отправляем в мою программу...
Как программе получить список имен файлов?
Hottabych вне форума Ответить с цитированием
Старый 02.06.2009, 13:45   #5
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

http://www.programmersforum.ru/showthread.php?p=278574
Evgeniy26 вне форума Ответить с цитированием
Старый 02.06.2009, 15:10   #6
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Цитата:
как передать своей программе параметры?
Есть такая функция ParamCount - возвращает количество параметров.
Есть еще одна функция ParamStr(index: integer) - возвращает переданный параметр по индексу.
ParamStr(0) - путь к Exe-файлу программы, так что его не считаем.
Вот пример:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
 i: integer;
begin
 if ParamCount <> 0 then
  for i := 1 to ParamCount do   //Начинаем с единицы
   ListBox1.Items.Add(ParamStr(i));
end;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Контекстное меню mar4elo Общие вопросы Delphi 19 18.09.2009 14:30
Контекстное меню. nikolai_P Microsoft Office Excel 1 05.05.2009 09:57
Контекстное меню Windows RamireZ Win Api 1 04.05.2009 13:04
Контекстное меню Aндрей Помощь студентам 1 28.04.2009 17:56
Контекстное меню файла... Altera Общие вопросы Delphi 3 29.02.2008 16:57