赛迪网 > IT技术 编程语言 > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

从远程NT服务器中读取日期和时间

发布时间:2006.08.16 03:11     来源:plwww    作者:

程序语言] Microsoft Visual Basic 4.0,5.0,6.0

[运行平台] WINDOWS

[源码来源] http://codeguru.developer.com/vb/articles/1915.shtml

[功能描述]

  该程序正常执行后,将返回日期和时间值。而如果NetRemoteTOD API调用失败,则显示出错信息。

它将包含所有的时区信息。把下列代码加入到标准的BAS模块中。

 

option Explicit

'

'

private Declare Function NetRemoteTOD Lib "Netapi32.dll" ( _

  tServer as Any, pBuffer as Long) 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

'

private 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 Type

'

private Declare Function GetTimeZoneInformation Lib "kernel32" (lpTimeZoneInformation as TIME_ZONE_INFORMATION) as Long

'

private Declare Function NetApiBufferFree Lib "Netapi32.dll" (byval lpBuffer as Long) as Long

'

private 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 Type

'

private 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 Function

 

 

要运行该程序,通过如下方式调用。

 

private Sub Command1_Click()

  Dim d as date

'

  d = GetRemoteTOD("your NT server name goes here")

  MsgBox d

End Sub


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 介绍三种功能强大的数据库表格控件 (06-07) · 在VB应用程序中使用INI文件的一点体会 (08-05)
· VB中API的声明特殊问题 (07-19) · SQL语言基本教程(一) (05-01)
· Windows未公开函数揭密——之三 (03-07) · 通过开发VB插件来扩展VB应用 (08-01)
· 用VB编写网络寻呼机(1) (07-17) · 用VB编写网络寻呼机(2) (12-26)
· 自己的IE——用VB制作浏览器 (09-07) · 基于Winsock 的小型网络管理系统及其实现 (01-28)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管