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