Here is something which I read somewhere...
I haven't tried it...
This code will tell windows to re-read the locale settings ...
VB Code:
Declare Function SendMessageTimeout Lib "user32" _
Alias "SendMessageTimeoutA" _
(ByVal hwnd As Long, ByVal msg As Long, _
ByVal wParam As Long, ByVal lParam As Long, _
ByVal fuFlags As Long, ByVal uTimeout As Long, _
lpdwResult As Long) As Long
Const HWND_BROADCAST As Long = &HFFFF&
Const WM_SETTINGCHANGE As Long = &H1A
Const SMTO_ABORTIFHUNG As Long = &H2
Call SendMessageTimeout(HWND_BROADCAST, _
WM_SETTINGCHANGE, _
0&, _
"intl", _
SMTO_ABORTIFHUNG, _
10000&, success)
About WM_SETTINGCHANGE ....
wParam:
When the system sends this message as a result of a SystemParametersInfo
call, wParam is a flag that indicates the system parameter that was changed.
For a list of values, see SystemParametersInfo.
When the system sends this message as a result of a change in policy
settings, this parameter indicates the type of policy that was applied. This
value is 1 if computer policy was applied or zero if user policy was
applied.
When the system sends this message as a result of a change in locale
settings, this parameter is zero.
When an application sends this message, this parameter must be NULL.
lParam:
When the system sends this message as a result of a SystemParametersInfo
call, lParam is a pointer to a string that indicates the area containing the
system parameter that was changed. For example, this string can be the name
of a registry key or the name of a section in the Win.ini file. This
parameter is not particularly useful in determining which system parameter
changed. For example, when the string is a registry name, it typically
indicates only the leaf node in the registry, not the whole path. In
addition, some applications send this message with lParam set to NULL. In
general, when you receive this message, you should check and reload any
system parameter settings that are used by your application.
When the system sends this message as a result of a change in policy
settings, this parameter points to the string "Policy".
When the system sends this message as a result of a change in locale
settings, this parameter points to the string "intl".
Hope this helps...