(copiado dos comentários conforme a solicitação de TO):
A coisa é, este menu é (tanto quanto eu sei) não definido por parâmetros externos no registro ou algo assim, é apenas parte da lógica dentro do explorer.exe. Assim, precisaríamos modificar efetivamente a lógica do explorer.exe, o que é possível carregando nosso próprio código nele e interceptando a ação de abrir o pop-up para que possamos adicionar o item e interceptar a mensagem do Windows que alguém clicou em nosso item. podemos reagir a isso.
A única maneira que eu sei é criar uma ferramenta que injeta uma DLL no explorador usando um gancho global WH_CALLWNDPROC
para manipular o menu em WM_INITMENUPOPUP
para adicionar o item de menu e reagir na mensagem WM_COMMAND
enviada pelo item de menu recém-adicionado ao abrir o Process Explorer.
No entanto, não tenho tempo agora para construir esta ferramenta, mas posso dar sugestões:
Você precisaria do Google para ganchos do Windows ( SetWindowsHookEx
, CallWndProc
), processamento de mensagens da janela (caso isso seja novidade para você) e subclasses de janelas ( SetWindowLong
, GWL_WNDPROC
, CallWindowProc
). Identificando o explorador: GetModuleFileName
(enquanto seu gancho é carregado nele). E identificar o menu direito para modificar (modificar: usando InsertMenuItem
) é um desafio por si só (embora você provavelmente possa verificar os IDs dos itens de menu existentes para identificar o menu - GetMenuItemCount
, GetMenuItemInfo
). Para finalmente executar o Process Explorer, você precisaria de CreateProcess
ou ShellExecute
.
Isso pode ser combinado com meu comentário aqui mas não fará muito sentido, porque se você for usar o método hook, você também pode simplesmente adicionar o item de lá, então você não precisa modificar quaisquer arquivos do sistema.