Molti applicativi richiedono l’utilizzo di un formato data particolare per funzionare correttamente. In generale, spesso ci si trova con il sistema operativo in inglese e le impostazioni dei Regional Settings in americano. Queste informazioni sono specifiche per ogni utente e può essere problematico modificarle.
In realtà queste impostazioni sono memorizzate nel registry nel ramo HKEY_CURRENT_USER\Control Panel\International. Per modificarle è sufficiente modificare le impostazioni che ci servono tramite un file .reg o uno script vbs che riscriva le singole chiavi.
Ecco l’esempio di un file che potremmo chiamare Regional_Setting_IT.reg
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\International]
"iCountry"="39"
"iCurrDigits"="2"
"iCurrency"="2"
"iDate"="1"
"iDigits"="2"
"iLZero"="1"
"iMeasure"="0"
"iNegCurr"="9"
"iTime"="1"
"iTLZero"="0"
"Locale"="00000410"
"s1159"=""
"s2359"=""
"sCountry"="Italy"
"sCurrency"="€"
"sDate"="/"
"sDecimal"=","
"sLanguage"="ITA"
"sList"=";"
"sLongDate"="dddd d MMMM yyyy"
"sShortDate"="dd/MM/yyyy"
"sThousand"="."
"sTime"="."
"DefaultBlindDialFlag"=hex:00
"sTimeFormat"="H.mm.ss"
"iTimePrefix"="0"
"sMonDecimalSep"=","
"sMonThousandSep"="."
"iNegNumber"="1"
"sNativeDigits"="0123456789"
"NumShape"="1"
"iCalendarType"="1"
"iFirstDayOfWeek"="0"
"iFirstWeekOfYear"="2"
"sGrouping"="3;0"
"sMonGrouping"="3;0"
"sPositiveSign"=""
"sNegativeSign"="-"
Per utilizzare questo script ci sono poi diverse soluzioni. Se il nostro sistema deve fornire applicazioni a utenti che utilizzano Regional Settings diversi, potremo lanciare l’applicazione tramite uno script all’interno del quale andremo a richiamare il nostro file .reg. Se invece gli utenti del nostro sistema sono più omogenei e utilizzano tutti le stesse impostazini sarà sufficiente caricare il file ad ogni login. Un sistema semplice e veloce può essere quello di utilizzare la struttura degli Application Compatibility Script già presente nel sistema.
Si tratta di copiare il nostro file Regional_Setting_IT.reg nela cartella %SYSTEMTROOT%\Application Compatibility Scripts\Logon e successivamente di inserire il richiemo a questo file nel file UsrLogn1.cmd:
echo regedt32 /s Regional_Settings_IT.reg >> %systemroot%\System32\UsrLogn1.cmd
Esistono anche diversi modi per modificare questi valori (come lavorare sul profilo di default per fare in modo che tutti i nuovi utenti abbiano le impostazioni desiderate), ma in generale l’approccio tramite script mi sembra più semplice e più versatile.
Update: un diverso approccio per affrontare il problema dei Regional Settings può essere quello du pubblicare l’omonimo pannello di controllo.
La pubblicazione degli elementi del pannello di controllo avviene con un comando come questo:
%SystemRoot%\System32\rundll32.exe SHELL32.DLL,Control_RunDLL %SystemRoot%\System32\intl.cpl
In alternativa è possibile usare anche la sintassi più semplice: control intl.cpl
Per ulteriori informazioni potete anche consultare il documento CTX103288