Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Регистрация программы в меню проводника


lsvit ©   (2006-12-17 13:50:00) 

Как мне сделать, чтобы при нажатии на файле правой кнопкой мыши в проводнике был мой пункт, и если его нажму - запускалась моя программа, в которой в качестве параметров было бы имя этого файла. :)


sicilla   (2006-12-17 20:59:00) [1]

procedure AddFileMenue(FilePrefix, Menue, Command: string);
var
  reg: TRegistry;
begin
    reg:=TRegistry.Create;
    with reg do
         begin
              RootKey:=HKEY_CLASSES_ROOT;
              OpenKey('.'+FilePrefix,True);
              WriteString('',FilePrefix+'file');
              CloseKey;
              CreateKey(FilePrefix+'file');
              OpenKey(FilePrefix+'file\DefaultIcon',True);
              WriteString('',Command+',0');
              CloseKey;
              OpenKey(FilePrefix+'file\shell\open\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 + '\DefaultIcon',True);
              DeleteKey('DefaultIcon');
              CloseKey;

              OpenKey(typ + '\shell', True);
              DeleteKey(Menue);
              CloseKey;
              Free;
         end;
end;

procedure TForm1.PDJXPButton6Click(Sender: TObject);
var S: string;
begin
    S := Application.ExeName;
    AddFileMenue('ciphered','open',S);
    SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, LongInt(PChar('HKEY_CLASSES_ROOT\cipheredfile\DefaultIcon')));
    Showmessage('Расширение зарегистрированно в реестре');
end;

procedure TForm1.PDJXPButton7Click(Sender: TObject);
begin
    DeleteFileMenue('ciphered', 'open');
    Showmessage('Расширение удалено из реестра');
end;


lsvit   (2006-12-17 20:39:00) [2]

не пойму что искать.
панель быстрого запуска вроде не то.
как называется то меню, которое всплывает по нажатии на правую клавишу мышы


ProgRAMmer Dimonych   (2006-12-17 14:01:00) [3]

В реестре ключи есть специальные. Какие - в гугле поищи.


Наверх

Титульная страница Поиск, карта сайта Написать письмо