아래 2개 소스 모두 수학쟁이님이 작성한 코드입니다. ================================================================================= http://cafe.naver.com/myvb/23887 [6.0] VB에서 컴퓨터 시간에 관계없이 항상 현재 시간을 얻어오는 법
트라이얼 프로그램을 만들 때 많이 유용한 방법일겁니다. 이 방법을 사용하면 시간을 조작하는 꽁수를 이용할 수 없습니다. :) 제 생각엔 이를 이용해서 시간 동기화 프로그램을 만들어줄수도 있겠다고 생각이 되는군요.
Dim CurrentDate As Date Private Declare Function GetModuleHandle Lib "kernel32.dll" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long Private Sub Form_Load() If GetModuleHandle("WpeSpy.dll") Then End ' 잘 알려진 패킷 스니퍼중 하나인 WPE PRO를 차단 Winsock1.Close Winsock1.Connect "192.43.244.18", 13 ' 192.43.244.18는 time.nist.gov의 IP End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim TimeData As String, vTimeData() As String Winsock1.GetData TimeData, vbString vTimeData() = Split(Split(TimeData, " ", 2)(1), " ", 3) CurrentDate = CDate(vTimeData(0)) + DateAdd("h", 9, CDate(vTimeData(1))) Winsock1.Close Process End Sub Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean) CurrentDate = Now Winsock1.Close Process End Sub Sub Process() ' 날짜와 관련된 처리를 수행 End Sub
'CurrentDate는 그리니치 천문대의 UTC(세계 협정시각) 표준 시각으로부터 GMT +09:00인 대한민국 표준 시간을 구한 시간입니다. '타임 서버는 저 서버 말고도 여러 군데 있습니다. 자세한 내용은 아래를 참고하십시오. 'http://tf.nist.gov/service/time-servers.html
================================================================================= http://cafe.naver.com/myvb/22387 [6.0] 레니님 요청 - 시스템 날짜 오후 5시로 바꾸는거 --ㅋ
Private Declare Sub GetSystemTime Lib "kernel32.dll" (ByRef lpSystemTime As SYSTEMTIME) Private Declare Function SetSystemTime Lib "kernel32.dll" (ByRef lpSystemTime As SYSTEMTIME) As Long Private Type SYSTEMTIME wYear As Integer wMonth As Integer wDayOfWeek As Integer wDay As Integer wHour As Integer wMinute As Integer wSecond As Integer wMilliseconds As Integer End Type
Sub 시간을5시로바꾸기() Dim s As SYSTEMTIME GetSystemTime s s.wHour = 17 ' 오후 5시 s.wMinute = 0 s.wSecond = 0 s.wMilliseconds = 0 SetSystemTime s End Sub
================================================================================= Winsock에 대해서 궁금하시면 아래 강좌도 참고해보세요..
하하.. 가능할겁니다..만... 왜 굳이 엑셀로.. =_=;;
굳이 엑셀로 하지 마시고.. 아래 프로그램을 이용해보세요..
[무설치] 원클릭으로 컴퓨터 시간 정확하게 맞추기. UTCk v3.1
http://www.slrclub.com/bbs/vx2.php?id=pds&no=26388
머.. 굳이.. 엑셀로 구현하시려면.. 아래 강좌들을 참고해보세요..
저도 테스트는 안 해봤지만.. 님을 위해서 검색해봤습니다. 술이라도 사심이.. ㅋ
아래 2개 소스 모두 수학쟁이님이 작성한 코드입니다.
=================================================================================
http://cafe.naver.com/myvb/23887
[6.0] VB에서 컴퓨터 시간에 관계없이 항상 현재 시간을 얻어오는 법
트라이얼 프로그램을 만들 때 많이 유용한 방법일겁니다.
이 방법을 사용하면 시간을 조작하는 꽁수를 이용할 수 없습니다. :)
제 생각엔 이를 이용해서 시간 동기화 프로그램을 만들어줄수도 있겠다고 생각이 되는군요.
Dim CurrentDate As Date
Private Declare Function GetModuleHandle Lib "kernel32.dll" Alias "GetModuleHandleA" (ByVal lpModuleName As
String) As Long
Private Sub Form_Load()
If GetModuleHandle("WpeSpy.dll") Then End ' 잘 알려진 패킷 스니퍼중 하나인 WPE PRO를 차단
Winsock1.Close
Winsock1.Connect "192.43.244.18", 13 ' 192.43.244.18는 time.nist.gov의 IP
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim TimeData As String, vTimeData() As String
Winsock1.GetData TimeData, vbString
vTimeData() = Split(Split(TimeData, " ", 2)(1), " ", 3)
CurrentDate = CDate(vTimeData(0)) + DateAdd("h", 9, CDate(vTimeData(1)))
Winsock1.Close
Process
End Sub
Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal
Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
CurrentDate = Now
Winsock1.Close
Process
End Sub
Sub Process()
' 날짜와 관련된 처리를 수행
End Sub
'CurrentDate는 그리니치 천문대의 UTC(세계 협정시각) 표준 시각으로부터 GMT +09:00인 대한민국 표준 시간을 구한 시간입니다.
'타임 서버는 저 서버 말고도 여러 군데 있습니다. 자세한 내용은 아래를 참고하십시오.
'http://tf.nist.gov/service/time-servers.html
=================================================================================
http://cafe.naver.com/myvb/22387
[6.0] 레니님 요청 - 시스템 날짜 오후 5시로 바꾸는거 --ㅋ
Private Declare Sub GetSystemTime Lib "kernel32.dll" (ByRef lpSystemTime As SYSTEMTIME)
Private Declare Function SetSystemTime Lib "kernel32.dll" (ByRef lpSystemTime As SYSTEMTIME) As Long
Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
Sub 시간을5시로바꾸기()
Dim s As SYSTEMTIME
GetSystemTime s
s.wHour = 17 ' 오후 5시
s.wMinute = 0
s.wSecond = 0
s.wMilliseconds = 0
SetSystemTime s
End Sub
=================================================================================
Winsock에 대해서 궁금하시면 아래 강좌도 참고해보세요..
[Socket] Visual Basic으로 윈속 API 주무르기 - (1) Winsock 입문
http://cafe.naver.com/xlsvba/1349
[Socket] Visual Basic으로 윈속 API 주무르기 - (2) Winsock API 입문
http://cafe.naver.com/xlsvba/1370
=================================================================================