Я думаю, что нашел решение для этого, и оно выглядит так - определить:
[DllImport("shell32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern void SHChangeNotify(uint wEventId, uint uFlags, IntPtr dwItem1, IntPtr dwItem2);
const uint SHCNF_IDLIST = 0x0;
const uint SHCNE_ASSOCCHANGED = 0x08000000;
Затем выполните код с ассоциациями, когда это необходимо, и после этого выполните:
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, IntPtr.Zero, IntPtr.Zero);
Также, если указанные ключи реестра не работают, попробуйте:
HKEY_CLASSES_ROOT\SystemFileAssociations\extension\Shell\yourcommand