컴퓨터의 날짜와 시간을 바꾸고 싶습니다.
window xp 이구요 날짜를 현재 날짜의 형식을
yyyy-mm-dd 형식에서 yyyy.mm.dd 형식으로 바꾸고 싶습니다.
procedure udf_checkDate();
var
Succeeds: Boolean;
SysLCID: LCID;
Registry : TRegistry;
begin
SysLCID := GetSystemDefaultLCID;
Succeeds := SetLocaleInfo( SysLCID, LOCALE_SSHORTDATE, 'yyyy-mm-dd' );
if Succeeds then
ShowMessage(' 날짜설정이 바뀌었습니다.');
SysUtils.ShortDateFormat := 'yyyy-mm-dd';
SysUtils.DateSeparator := '-';
// 레지스트에서 형식 변경
// 재부팅을 해야 함
Registry := TRegistry.Create;
Registry.RootKey := HKEY_CURRENT_USER;
Registry.OpenKey('Control PanelInternational', True);
Registry.WriteString('sShortDate', 'yyyy-mm-dd');
Registry.Free;
end;
이렇게 세개를 다했는데요 델파이상에서 형식을 바뀌는것 같은데
컴퓨터의 국가별옵션에 가면 상태는 그대로 입니다.
어떻게 해야 할가요?
그리고 현재 표준날짜와 시간을 갖고 와서 컴퓨터의 날짜와 시간을 변경하하고 싶은데 가능한가요?
<!--CodeS-->
procedure udf_checkDate();
const
DATE_STR : String = 'yyyy.MM.dd';
var
Registry : TRegistry;
begin
Registry := TRegistry.Create;
Registry.RootKey := HKEY_CURRENT_USER;
Registry.OpenKey('\Control Panel\International', True);
Registry.WriteString('sShortDate', DATE_STR);
Registry.RootKey := HKEY_USERS;
Registry.OpenKey('\.DEFAULT\Control Panel\International', True);
Registry.WriteString('sShortDate', DATE_STR);
Registry.Free;
setlocaleinfo(LOCALE_SYSTEM_DEFAULT,LOCALE_SDATE, pchar(DATE_STR));
PostMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
end;
<!--CodeE-->