when I use this code to change my Local it changes in setting but its not applying. what should I do?

procedure TForm1.Button1Click(Sender: TObject);
var reg:TRegistry;
begin
reg:=TRegistry.Create;
with reg do begin
try
if OpenKey('\Control Panel\International', False) then begin

reg.WriteString ('Locale','00000401');

SystemParametersInfo
(SPI_SETDEFAULTINPUTLANG,0, nil,SPIF_SENDWININICHANGE);
end
finally
reg.free
end;
end;
End;