假如远程主机(或服务器)的IP为1.2.3.4,用户名为a,密码为b,在VB中怎样才可以获取到它的时间?

解决方案 »

  1.   

    '讀取網絡服務器當前時間Option Explicit
    Private Declare Function NetRemoteTOD Lib "Netapi32.dll" (tServer As Any, pBuffer As Long) As LongPrivate 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 TypePrivate Type TIME_ZONE_INFORMATION
      Bias             As Long
      StandardName(32) As Integer
      StandardDate     As SYSTEMTIME
      StandardBias     As Long
      DaylightName(32) As Integer
      DaylightDate     As SYSTEMTIME
      DaylightBias     As Long
    End TypePrivate Declare Function GetTimeZoneInformation Lib "kernel32" ( _ 
                             lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long
    Private Declare Function NetApiBufferFree Lib "Netapi32.dll" (ByVal lpBuffer As Long) As LongPrivate Type TIME_OF_DAY_INFO
      tod_elapsedt  As Long
      tod_msecs     As Long
      tod_hours     As Long
      tod_mins      As Long
      tod_secs      As Long
      tod_hunds     As Long
      tod_timezone  As Long
      tod_tinterval As Long
      tod_day       As Long
      tod_month     As Long
      tod_year      As Long
      tod_weekday   As Long
    End TypePrivate Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _ 
                                   Destination As Any, Source As Any, ByVal Length As Long)Public Function getRemoteTOD(ByVal strServer As String) As Date
      Dim result    As Date
      Dim lRet      As Long
      Dim tod       As TIME_OF_DAY_INFO
      Dim lpbuff    As Long
      Dim tServer() As Byte
      tServer = strServer & vbNullChar
      lRet = NetRemoteTOD(tServer(0), lpbuff)
      If lRet = 0 Then
         CopyMemory tod, ByVal lpbuff, Len(tod)
         NetApiBufferFree lpbuff
         result = DateSerial(tod.tod_year, tod.tod_month, tod.tod_day) + _
                  TimeSerial(tod.tod_hours, tod.tod_mins - tod.tod_timezone, tod.tod_secs)
         getRemoteTOD = result
      Else
         Err.Raise Number:=vbObjectError + 1001, _
                   Description:="cannot get remote TOD"
      End If
    End FunctionPrivate Sub Command1_Click()
      Dim d As Date
      d = getRemoteTOD("E08-065")
      MsgBox d
    End Sub
      

  2.   

    SELECT GETDATE() AS now_time
      

  3.   

    如果服务器上有SQLServer的话,可以用SELECT GETDATE() AS now_time