Обмен кнопок мыши с помощью кода не является постоянной операцией. Как вы уже обнаружили, он сбрасывается при следующем перезапуске ОС. Если пользователь хочет, чтобы кнопки менялись постоянно, он должен установить это на панели управления, а не в своем коде.
При этом, если вы действительно хотите обрабатывать это в коде, то каждый раз, когда ваше приложение запускается , используйте команду GetSystemMetrics(SM_SWAPBUTTON)
, чтобы проверить, не поменялись ли кнопки мыши в данный момент, а если нет, то поменяйте местами.