This event occurs, before a context menu command is executed.
This event is triggered if a command from the context menu should be executed. It was either chosen from the shell context menu or triggered by a keyboard event.
procedure TMainForm.ShellListBeforeShellCommand(Sender: TObject; const Command: string; Items: IItemIdListCollection; var AllowExecute: Boolean); begin if Items.Count <> 1 then exit; //suppress the default action for text files. if (TShellCommand(Command) in [TShellAction.saDefault, TShellAction.saOpen]) and (UpperCase(ExtractFileExt(Items.Path)) = '.TXT') then begin AllowExecute := false; //additionally you might handle the action yourself. ShowMessage('Custom action'); end; end;