2012년 7월 22일 일요일

PC 시간을 설정합니다.

ㆍ언어대상 : C#   ㆍ작성자 : 김민석  

PC의 시간을 동기화 할때 사용합니다.

API 함수 원형 입니다.

        [DllImport("kernel32.dll", EntryPoint = "GetSystemTime", SetLastError = true)]
        public extern static void Win32GetSystemTime(ref SYSTEMTIME lpSystemTime);
        [DllImport("kernel32.dll", EntryPoint = "SetSystemTime", SetLastError = true)]
        public extern static bool Win32SetSystemTime(ref SYSTEMTIME lpSystemTime);

함수 입니다.

        ///


        /// 한국시간을 기준으로 합니다..(UTC는 제외)
        ///

        ///
        ///
        public bool SetLocalTime(DateTime locTime)
        {
            DateTime datatime = locTime.ToUniversalTime();

            SYSTEMTIME sTime = new SYSTEMTIME();
            Win32GetSystemTime(ref sTime);
            sTime.wYear = (ushort)datatime.Year;
            sTime.wMonth = (ushort)datatime.Month;
            sTime.wDayOfWeek = (ushort)datatime.DayOfWeek;
            sTime.wDay = (ushort)(datatime.Day);
            sTime.wHour = (ushort)(datatime.Hour);
            sTime.wMinute = (ushort)datatime.Minute;
            sTime.wSecond = (ushort)datatime.Second;
            sTime.wMilliseconds = (ushort)datatime.Millisecond;
            if (Win32SetSystemTime(ref sTime))
            {
                return true;
            }
            else
            {
                return false;
            }
        }


사용되는 구조체 원형은 다음과 같습니다.

   [StructLayout(LayoutKind.Sequential)]
    public struct SYSTEMTIME
    {
        public ushort wYear;
        public ushort wMonth;
        public ushort wDayOfWeek;
        public ushort wDay;
        public ushort wHour;
        public ushort wMinute;
        public ushort wSecond;
        public ushort wMilliseconds;
    }



해당 내용은 (주)데브존의 웹봇이 자동으로 저희 홈페이지와 API로 동기화한 내용입니다. 자세한 내용은 홈페이지 http://www.devzone.co.kr 또는 모바일 폰에서 http://devzone.co.kr을 접속 하여 확인해 보시기 비랍니다.
• 대표 전화 : 02) 2061 - 0753     • Fax : 02) 2061 - 0759
• 주소 : 서울특별시 양천구 목1동 923-14. 현대드림타워 1024호
• 기술 문의: 02) 2061-1259 김민석 (dev@devzone.co.kr)

댓글 없음:

댓글 쓰기