 |
VFP ·R¥ÎªÌªÀ°Ï ¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.
|
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD |
µoªí¤H |
¤º®e |
oldbb
µù¥U®É¶¡: 2007-02-28 ¤å³¹: 83
²Ä 16 ¼Ó
|
µoªí©ó: ¬P´Á¤ ¤T¤ë 06, 2015 7:44 am ¤å³¹¥DÃD: |
|
|
¥i¸Õ¤@¤U¥Î stWsaData = SPACE(398) ¥N´À¡C |
|
¦^³»ºÝ |
|
 |
kalok
µù¥U®É¶¡: 2010-08-26 ¤å³¹: 284
²Ä 17 ¼Ó
|
µoªí©ó: ¬P´Á¤@ ¤¤ë 11, 2015 6:45 am ¤å³¹¥DÃD: |
|
|
¤£n¦A¥Î VFP6 ¤F |
|
¦^³»ºÝ |
|
 |
LiChingLin
µù¥U®É¶¡: 2006-04-19 ¤å³¹: 59
²Ä 18 ¼Ó
|
µoªí©ó: ¬P´Á¤@ ¤¤ë 11, 2015 2:28 pm ¤å³¹¥DÃD: |
|
|
ÁÂÁÂ |
|
¦^³»ºÝ |
|
 |
LiChingLin
µù¥U®É¶¡: 2006-04-19 ¤å³¹: 59
²Ä 19 ¼Ó
|
µoªí©ó: ¬P´Á¤G ¤¤ë 12, 2015 4:55 pm ¤å³¹¥DÃD: |
|
|
§Ų́S¿ìªk¿ï¾Ü¥Î©Î¤£¥Îvfp6 .... µL©`
vfp9 ¤S¨S±o¤U¨Ó´ú¸Õ .. µLªk«ØÄ³¤W¥h§r ..
¦^ oldbb
¨ä¥L¦æ¤]·|¥X¿ù
¥un¹J¨ì 0h00 , 0h0200 , 0x202 ....
³£·|¥X¿ù |
|
¦^³»ºÝ |
|
 |
perry
µù¥U®É¶¡: 2014-07-20 ¤å³¹: 203
²Ä 20 ¼Ó
|
|
¦^³»ºÝ |
|
 |
oldbb
µù¥U®É¶¡: 2007-02-28 ¤å³¹: 83
²Ä 21 ¼Ó
|
µoªí©ó: ¬P´Á¤G ¤¤ë 12, 2015 9:09 pm ¤å³¹¥DÃD: |
|
|
¥ÎVFP6¸Õµo²{¦³´XÓ«ü¥O¤£Ý®e¡A§ï¤F¤@¤U¡C
¥N½X: |
*
* ºôµ¸®É¶¡¦P¨B
*
SET TALK OFF
CLEAR
*szNtpIP = "132.163.4.101"
*szNtpIP = "132.163.4.102"
szNtpIP = "132.163.4.103"
*szNtpIP = "128.138.140.44"
ddNtpPort = 13
_UTC2Current(_GetNetTime(szNtpIP, ddNtpPort))
RETURN
FUNCTION _UTC2Current(szUTC)
LOCAL stTimeUTC, stTimeZoneInfo, stTimeCurrent
LOCAL ddYear, ddMonth, ddDay, ddHour, ddMinute, ddSecond
IF EMPTY(szUTC)
RETURN
ENDIF
DECLARE LONG GetTimeZoneInformation IN Kernel32 STRING@
DECLARE LONG SystemTimeToTzSpecificLocalTime IN Kernel32 STRING@, STRING@, STRING@
DECLARE LONG SetLocalTime IN Kernel32 STRING@
stTimeZoneInfo = REPLICATE(CHR(0x00), 172)
stTimeCurrent = REPLICATE(CHR(0x00), 16)
ddYear = INT(VAL(SUBSTR(szUTC, 8, 2))) + 2000
ddMonth = INT(VAL(SUBSTR(szUTC, 11, 2)))
ddDay = INT(VAL(SUBSTR(szUTC, 14, 2)))
ddHour = INT(VAL(SUBSTR(szUTC, 17, 2)))
ddMinute = INT(VAL(SUBSTR(szUTC, 20, 2)))
ddSecond = INT(VAL(SUBSTR(szUTC, 23, 2)))
stTimeUTC = CHR(BITAND(ddYear, 0x00FF));
+ CHR(BITRSHIFT(BITAND(ddYear, 0xFF00), 8));
+ CHR(BITAND(ddMonth, 0x00FF));
+ CHR(BITRSHIFT(BITAND(ddMonth, 0xFF00), 8));
+ REPLICATE(CHR(0x00), 2);
+ CHR(BITAND(ddDay, 0x00FF));
+ CHR(BITRSHIFT(BITAND(ddDay, 0xFF00), 8));
+ CHR(BITAND(ddHour, 0x00FF));
+ CHR(BITRSHIFT(BITAND(ddHour, 0xFF00), 8));
+ CHR(BITAND(ddMinute, 0x00FF));
+ CHR(BITRSHIFT(BITAND(ddMinute, 0xFF00), 8));
+ CHR(BITAND(ddSecond, 0x00FF));
+ CHR(BITRSHIFT(BITAND(ddSecond, 0xFF00), 8))
GetTimeZoneInformation(@stTimeZoneInfo)
SystemTimeToTzSpecificLocalTime(@stTimeZoneInfo, @stTimeUTC, @stTimeCurrent)
IF SetLocalTime(@stTimeCurrent) != 0
ddYear = ASC(SUBSTR(stTimeCurrent, 1, 1)) + BITLSHIFT(ASC(SUBSTR(stTimeCurrent, 2, 1)), 8)
ddMonth = ASC(SUBSTR(stTimeCurrent, 3, 1)) + BITLSHIFT(ASC(SUBSTR(stTimeCurrent, 4, 1)), 8)
ddDay = ASC(SUBSTR(stTimeCurrent, 7, 1)) + BITLSHIFT(ASC(SUBSTR(stTimeCurrent, 8, 1)), 8)
ddHour = ASC(SUBSTR(stTimeCurrent, 9, 1)) + BITLSHIFT(ASC(SUBSTR(stTimeCurrent,10, 1)), 8)
ddMinute = ASC(SUBSTR(stTimeCurrent,11, 1)) + BITLSHIFT(ASC(SUBSTR(stTimeCurrent,12, 1)), 8)
ddSecond = ASC(SUBSTR(stTimeCurrent,13, 1)) + BITLSHIFT(ASC(SUBSTR(stTimeCurrent,14, 1)), 8)
MESSAGEBOX("®ÉÄÁ¦b "+;
TRANSFORM(ddYear)+"/"+TRANSFORM(ddMonth)+"/"+TRANSFORM(ddDay)+" "+;
TRANSFORM(ddHour)+":"+TRANSFORM(ddMinute)+":"+TRANSFORM(ddSecond)+;
" ¦P¨B¦¨¥\")
ELSE
MESSAGEBOX("®ÉÄÁ¦P¨B¥¢±Ñ¡A¸Õ¥HºÞ²zû¨¥÷°õ¦æ¥Dµ{§Ç¡C")
ENDIF
ENDFUNC
FUNCTION _GetNetTime(szNtpIP, ddNtpPort)
LOCAL stWsaData, stSockAddr, szBuffer, dhSocket
LOCAL i, ddLen
DECLARE LONG WSAStartup IN "Ws2_32" LONG, STRING@
DECLARE LONG WSACleanup IN "Ws2_32"
DECLARE LONG socket IN "Ws2_32" LONG, LONG, LONG
DECLARE LONG connect IN "Ws2_32" LONG, STRING@, LONG
DECLARE LONG recv IN "Ws2_32" LONG, STRING@, LONG, LONG
DECLARE LONG closesocket IN "Ws2_32" LONG
DECLARE LONG inet_addr IN "Ws2_32" STRING@
DECLARE LONG htons IN "Ws2_32" LONG
stWsaData = REPLICATE(CHR(0x00), 398)
szBuffer = REPLICATE(CHR(0x00), 256)
stSockAddr = REPLICATE(CHR(0x00), 16)
stSockAddr = CHR(0x02) + CHR(0x00);
+ CHR(BITAND(htons(ddNtpPort), 0x00FF));
+ CHR(BITRSHIFT(BITAND(htons(ddNtpPort), 0xFF00), 8));
+ CHR(BITAND(inet_addr(@szNtpIP), 0x000000FF));
+ CHR(BITRSHIFT(BITAND(inet_addr(@szNtpIP), 0x0000FF00), 8));
+ CHR(BITRSHIFT(BITAND(inet_addr(@szNtpIP), 0x00FF0000), 16));
+ CHR(BITRSHIFT(BITAND(inet_addr(@szNtpIP), 0xFF000000), 24));
+ REPLICATE(CHR(0x00), 8)
WSAStartup(0x202, @stWsaData)
dhSocket = socket(2, 1, 6)
ddLen = 0
IF connect(dhSocket, @stSockAddr, LEN(stSockAddr)) != -1
FOR i = 1 TO 3
ddLen = recv(dhSocket, @szBuffer, LEN(szBuffer), 0)
IF ddLen != -1
EXIT
ENDIF
ENDFOR
ENDIF
closesocket(dhSocket)
WSACleanup()
IF ddLen > 0
szBuffer = LEFT(szBuffer, ddLen)
RETURN szBuffer
ELSE
MESSAGEBOX("ºôµ¸³s±µ²§±`¡A®ÉÄÁ¦P¨B¥¢±Ñ¡C")
RETURN ""
ENDIF
ENDFUNC
|
|
|
¦^³»ºÝ |
|
 |
LiChingLin
µù¥U®É¶¡: 2006-04-19 ¤å³¹: 59
²Ä 22 ¼Ó
|
µoªí©ó: ¬P´Á¥| ¤¤ë 14, 2015 4:59 pm ¤å³¹¥DÃD: |
|
|
¥Î
szNtpIP = "128.138.140.44"
¥i¥H¤F
ÁÂÁÂ |
|
¦^³»ºÝ |
|
 |
|
|
±z µLªk ¦b³oÓª©±µoªí¤å³¹ ±z µLªk ¦b³oÓª©±¦^ÂФ峹 ±z µLªk ¦b³oÓª©±½s¿è¤å³¹ ±z µLªk ¦b³oÓª©±§R°£¤å³¹ ±z µLªk ¦b³oÓª©±¶i¦æ§ë²¼ ±z µLªk ¦b³oÓª©±ªþ¥[ÀÉ®× ±z µLªk ¦b³oÓª©±¤U¸üÀÉ®×
|
Powered by phpBB © 2001, 2005 phpBB Group ¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@
|