Today I ran into a little problem.
I need to use the Regional-Language-Settings for my Installer (MUI, MultiLanguage) instead of the SystemLanguage. I realised this using the "System::Call "kernel32::GetUserDefaultLangID()i.a"" message at .oninit.
But know what makes me go nuts ...
MessageBoxes "after" the .OnInit are shown in SytemLanguage, the InstallationPages are shown in RegionalLanguage!
A little example
[...]
LangString LESS_MEM ${LANG_ENGLISH} "This system has $R0 MB Memory but 1536 MB is at least required. Continue Installation?"
LangString LESS_MEM ${LANG_FRENCH} "Ce système a $R0 Mo de mémoire principal mais au moins 1536 Mo sont requis. Continuer l'installation?"
LangString LESS_MEM ${LANG_GERMAN} "Dieses System hat $R0 MB Arbeitsspeicher, vorrausgesetzt werden aber 1536 MB. Installation fortfahren?"
LangString LESS_MEM ${LANG_ITALIAN} "Il sistema dispone di $R0 MB di memoria principale. Sono necessari almeno 1536 MB. Continuare l'installazione?"
LangString LESS_MEM ${LANG_SPANISH} "Este sistema dispone de $R0 MB de memoria principal, sin embargo se necesitan 1536 MB. ¿Desea continuar la instalación?"
[...]
Function .onInit
System::Call "kernel32::GetUserDefaultLangID()i.a"
[... also in/on .onInit ...]
HwInfo::GetSystemMemory
StrCpy $R0 $0
${If} $R0 < 1536
MessageBox MB_YESNO "$(LESS_MEM)" IDYES GetSystemMemoryEnd IDNO +1
Abort
${EndIf}
GetSystemMemoryEnd:
[...] My testenvironment is a WinXP in english with language set to french. All install pages are french, the messageboxes english. What I am doing wrong?! 🙁Thank you for any support or help. Please excuse my bad english. 🙂