Well like anybody knew how to change the current theme without opening the theme selector with rundll32 etc... then here we go my personal trick (which is not on google and anywhere, it's pure luck).
First step: disable DWMCOMPOSITION for example disabling the "Themes" service.
Second step: add a regkey to specify the desired new theme, specify the msstyles file, not the .theme file.
I do this with a personal func but you can get the idea:
Reg_Set_Value("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager", "DllName", "C:\windows\resources\themes\aero\aero.msstyles", Microsoft.Win32.RegistryValueKind.String)
Third step: Re-enable the DWM composition ("Themes" service).
Voilá!
UPDATE:
Also I noticed need to change this value to 0 before enabling the theme to ensure all the color schemes are updated:
Reg_Set_Value("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager", "LoadedBefore", "0", Microsoft.Win32.RegistryValueKind.String)