안녕하세요 이정욱씨
저는 김철현입니다.
그동안 별고 없으셨는지요.
다름이 아니라 난관에 봉착한 나머지 백방으로 수소문 끝에
이렇게 문을 두드립니다.
다름이 아니라 여러곳에 윈도우의 시스템 날짜를 바꾸는 것에
대한 질문과 답은 많았지만
Window System Date Format를 바꾸는 것에 대한 것은 없더군요
레지스트리와 Ini를 바꾸어 줘 봤는데 그것은 재부팅을 해야만
되더군요.
리부팅을 안하고 Windows의 기본 셋팅을 바꾸어서 바로 사용할수
는 없을까요?
제어판의 '국가별 설정'에서 와 같이 말입니다.
Winsight를 실행시켜보면 '적용' 버튼을 눌렀을때 WM_WININICHANGE라는
메세지가 발생되더군요....
하지만 자세한 사용법을 모르겠습니다.
구원의 메세지 부탁드립니다.
이것은 레지스트리와 INI의 설정을 바꾸어주는 부분입니다.
procedure TForm1.Button1Click(Sender: TObject);
var
IniFiles : TIniFile;
RegFile : TRegIniFile;
begin
IniFiles := TIniFile.Create('Win.ini');
if IniFiles.ReadString('intl', 'sShortDate', '') <> 'yy-MM-dd' then
IniFiles.WriteString('intl', 'sShortDate', 'yy-MM-dd');
IniFiles.Free;
RegFile := TRegIniFile.Create('Control Panel');
if RegFile.ReadString('International','sShortDate', '') <> 'yy-MM-dd' then
RegFile.WriteString('International', 'sShortDate', 'yy-MM-dd');
RegFile.Free;
end;
이곳에서 만나니 반갑구만요~ ^^; 잘 지내셨죠~??
재부팅을 하지 않고도 레지스트리의 변경사실을 다른 어플리케이션에 알리는 방법이 있습니다. 철현씨의 경우에도 통할지는 장담할 수 없지만... 이렇게 해 보세요.
SendMessage( HWND_BROADCAST, WM_WININICHANGE, 0,
LongInt( PChar( '변경한 레지스트리의 풀 경로' ) ) );
말씀하신 WM_WININICHANGE 메시지를 윈도우 시스템 전체에 날리는 예제걸랑요...
windows.INI를 변경하신 경우는 다음과 같이 하심 됩니당..
SendMessage( HWND_BROADCAST, WM_WININICHANGE, 0,
LongInt( PChar( 'Windows' ) ) );
이 방법 말고도 데이트 포멧을 직접 변경하는 API도 있었던 것 같은데... 쩝... 찾아보고 발견하면 알려드리죠...
도움이 되었으면 좋겠구만요... 그럼...
김철현 wrote:
> 안녕하세요 이정욱씨
> 저는 김철현입니다.
> 그동안 별고 없으셨는지요.
> 다름이 아니라 난관에 봉착한 나머지 백방으로 수소문 끝에
> 이렇게 문을 두드립니다.
> 다름이 아니라 여러곳에 윈도우의 시스템 날짜를 바꾸는 것에
> 대한 질문과 답은 많았지만
> Window System Date Format를 바꾸는 것에 대한 것은 없더군요
> 레지스트리와 Ini를 바꾸어 줘 봤는데 그것은 재부팅을 해야만
> 되더군요.
> 리부팅을 안하고 Windows의 기본 셋팅을 바꾸어서 바로 사용할수
> 는 없을까요?
> 제어판의 '국가별 설정'에서 와 같이 말입니다.
> Winsight를 실행시켜보면 '적용' 버튼을 눌렀을때 WM_WININICHANGE라는
> 메세지가 발생되더군요....
> 하지만 자세한 사용법을 모르겠습니다.
> 구원의 메세지 부탁드립니다.
>
>
> 이것은 레지스트리와 INI의 설정을 바꾸어주는 부분입니다.
>
>
> procedure TForm1.Button1Click(Sender: TObject);
> var
> IniFiles : TIniFile;
> RegFile : TRegIniFile;
> begin
> IniFiles := TIniFile.Create('Win.ini');
>
> if IniFiles.ReadString('intl', 'sShortDate', '') <> 'yy-MM-dd' then
> IniFiles.WriteString('intl', 'sShortDate', 'yy-MM-dd');
> IniFiles.Free;
>
> RegFile := TRegIniFile.Create('Control Panel');
> if RegFile.ReadString('International','sShortDate', '') <> 'yy-MM-dd' then
> RegFile.WriteString('International', 'sShortDate', 'yy-MM-dd');
> RegFile.Free;
> end;