uses shlobj;
procedure PropertiesDialog(action,filename:String);
var
sei: TShellExecuteInfo;
begin
FillChar(sei, SizeOf(sei), 0);
sei.cbSize := SizeOf(sei);
sei.lpFile := PChar(filename);
//sei.lpVerb := 'properties';
sei.lpVerb := PChar(action);
sei.fMask := SEE_MASK_INVOKEIDLIST;
ShellExecuteEx(@sei);
end;