Мне нужно добавить в контекстное меню проводника свой пункт. Не через COM обьекты. Пока добавляю так:
procedure TfrmMain.AddItem(Sender: Tobject);
begin
Reg:=TRegistry.Create;
Try
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey('Directory\Background\Shelll', true);
Reg.OpenKey('MyNotepad',true);
Reg.WriteString('','Открыть с помощью MyNotepad');
Reg.OpenKey('command',true);
Reg.WriteString('',Application.ExeName);
Finally
Reg.Free;
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;
end;
А удаляю так:
procedure TfrmMain.DeleteItem(Sender: TObject);
begin
Reg:=TRegistry.Create;
Try
Reg.RootKey := HKEY_CLASSES_ROOT;
reg.OpenKey('Directory\Background\Shell', true);;
reg.DeleteKey('MyNotepad');
Finally
Reg.Free;
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;
end;
Но ничего не добавляется! Что я делаю не так? Может, не туда писать надо?
P.S. Хорошо, если бы пункты добавились только в контекстное меню файлов .php , .php3 , .phtml. Но как это сделать, я не понял. Подскажите!
Примечание:
intlex, спасибо. А где можно посмотреть то же для xp, не знаете?
Примечание:
А,да. Если кто начнет придираться - переменная Reg глобальная.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.