![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Регистрация программы в меню проводника
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]В реестре ключи есть специальные. Какие - в гугле поищи.