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

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

Строка в системном меню [D7, WinXP]


Sicilla ©   (2006-05-13 19:27:00) 

Есть такая проблема. Надо добавить пункт в систеное меню Windows в окнах explorera, наподобие Касперского или Winrar.
Где и как надо прописаться в реестре? заранее спасибо


Neo Trinitron   (2006-06-14 15:21:00) [1]

А если нужно чтобы пункт меню был когда кликаю правой кнопкой не на файле, а просто в окне Explorer, чтобы использовать не один файл, а все или выделеные файлы?


Neo Trinitron   (2006-06-14 15:17:00) [2]

Пардон, получается, но только при нажатии правой клавиши на имя файла (не папки). Указал

R.OpenKey('Folder\shell', True);

Fay, код описан выше уважаемым MikeZом.


Fay   (2006-06-14 14:40:00) [3]

> W2k, D6...
Это код?


Neo Trinitron   (2006-06-14 12:38:00) [4]

А у меня почему-то не получается...

W2k, D6...


MikeZ   (2006-05-14 20:49:00) [5]

На здоровье!

Если в строке
R.OpenKey('Directory\shell', True);
слово Directory заменить на Folder, то такое меню будет отображаться не только на реальных каталогах (типа С:\), но и на виртуальных папках (типа Корзины).


sicilla   (2006-05-13 20:08:00) [6]

Огромное спасибо!


MikeZ   (2006-05-13 19:52:00) [7]

Просто - вот так:
Procedure Integrate(AMenuName, AMenuCaption, ACommandLine: String; AIntegrate: Boolean);
Var
 R                           : TRegistry;

 Procedure WriteIntegrationData;
 Begin
   If Not AIntegrate Then
     Begin
       If R.KeyExists(AMenuName) Then
         R.DeleteKey(AMenuName);
     End
   Else
     Begin
       R.OpenKey(AMenuName, True);
       R.WriteString('', AMenuCaption);
       R.OpenKey('Command', True);
       R.WriteString('', ACommandLine);
     End;
 End;

Begin
 R := TRegistry.Create;
 R.RootKey := HKEY_CLASSES_ROOT;

 R.OpenKey('*\shell', True);
 WriteIntegrationData;
 R.CloseKey;
 R.OpenKey('Directory\shell', True);
 WriteIntegrationData;

 R.CloseKey;
 R.Free;
End;



Но могут быть проблемы с обработкой нескольких файлов.

По-другому - \Demos\ActiveX\ShellExt\ContMenu


Наверх

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