Я протестировал небольшое расширение оболочки, ссылаясь на статью о проекте кода.Хотя весь процесс довольно сложный, я кое-что понимаю, каковы следующие методы и что они делают.: 1003
Initialize,DragQueryFile,GetCommandString,InvokeCommand,QueryContextMenu
Но после прочтения я не могу понять, как нашРасширение ContextMenu связано с файлом .txt.
В статье объясняется, что если мы посмотрим внутрь файла .rgs, то увидим, что он создает запись в реестре, например:
HKCR
{
NoRemove txtfile
{
NoRemove ShellEx
{
NoRemove ContextMenuHandlers
{
ForceRemove SimpleShlExt = s '{5E2121EE-0300-11D4-8D3B-444553540000}'
}
}
}
}
Но на самом деле, после прочтения статьи и написания кода, когда я открыл SimpleShlExt.rgs
Это выглядит примерно так:
- Изменить как в CodeProject -
HKCR
{
NoRemove CLSID
{
ForceRemove {1E569362-E0A6-4DEA-AB1F-67D6D3DEF1A5} = s 'SimpleShExt Class'
{
InprocServer32 = s '%MODULE%'
{
val ThreadingModel = s 'Apartment'
}
}
}
}
Создает ли реестр динамически любое сопоставление между записями CLSID и txtfile reg.
Если это так, если я хочу изменить поведение для любого другого файла, например, для mp3-файла или дискасам, и я хочу, чтобы мое контекстное меню было всплывающим или отображалось, тогда как это сделать.Потому что я не знаю CLSID для этого.