文章收藏-FAQ 位置:电脑学习网

用 ASP+DLL 服务器组件实现 WEB 方式修改服务器时间

    有个需求,是要通过Web方式,修改IIS服务器上的时间,由于系统是ASP 3.0下开发的,所以本例子的代码是ASP的,不是ASP.NET,但是本人写这个文章是想抛砖引玉,毕竟编写程序关键的不是语言,更重要的是一种思想,把程序语言理解为一种工具,把编程思想理解为解决问题的思路和方法,那么编写出来的程序就是:利用“工具”按照解决问题的“思想”去解决一个问题。

    首先,在VB 6.0中建立一个ActiveX Dll工程项目,信息如下:

    工程名称:systimeset
    类模块名称:timeset

    VB 6.0的类模块代码如下:

     1Option Explicit
     2Private SystemTime As SystemTime
     3Private Declare Function SetSystemTime()Function SetSystemTime Lib “kernel32“ (lpSystemTime As SystemTime) As Long
     4Private Type SystemTime
     5  wYear As Integer
     6  wMonth As Integer
     7  wDayOfWeek As Integer
     8  wDay As Integer
     9  wHour As Integer
    10  wMinute As Integer
    11  wSecond As Integer
    12  wMilliseconds As Integer
    13End Type
    14
    15Dim tmp
    16
    17Private m_Hour As Integer
    18Private m_Minute As Integer
    19Private m_Year As Integer
    20Private m_Month As Integer
    21Private m_Day As Integer
    22Private m_Second As Integer
    23
    24’由李锡远修改     修改日期:2006-08-31     修改项目:增加对年、月、日、秒的操作
    25’--------------------
    26’年
    27Public Property Get()Property Get Year() As Integer
    28Year = m_Year
    29End Property
    30Public Property Let()Property Let Year(tmp_Year As Integer)
    31m_Year = tmp_Year
    32End Property
    33’--------------------
    34’月
    35Public Property Get()Property Get Month() As Integer
    36Month = m_Month
    37End Property
    38Public Property Let()Property Let Month(tmp_Month As Integer)
    39m_Month = tmp_Month
    40End Property
    41’--------------------
    42’日
    43Public Property Get()Property Get Day() As Integer
    44Day = m_Day
    45End Property
    46Public Property Let()Property Let Day(tmp_Day As Integer)
    47m_Day = tmp_Day
    48End Property
    49’--------------------
    50’秒
    51Public Property Get()Property Get Second() As Integer
    52Second = m_Second
    53End Property
    54Public Property Let()Property Let Second(tmp_Second As Integer)
    55m_Second = tmp_Second
    56End Property
    57
    58
    59
    60Public Property Get()Property Get Hour() As Integer
    61Hour = m_Hour
    62End Property
    63Public Property Let()Property Let Hour(tmp_Hour As Integer)
    64m_Hour = tmp_Hour
    65End Property
    66Public Property Get()Property Get Minute() As Integer
    67Minute = m_Minute
    68End Property
    69Public Property Let()Property Let Minute(tmp_Minute As Integer)
    70m_Minute = tmp_Minute
    71End Property
    72
    73
    74
    75
    76Public Function setup()Function setup() As Integer
    77SystemTime.wDay = Day
    78’SystemTime.wDayOfWeek = 1
    79SystemTime.wMilliseconds = 0
    80SystemTime.wMonth = Month
    81SystemTime.wSecond = Second
    82SystemTime.wYear = Year
    83SystemTime.wHour = Hour
    84SystemTime.wMinute = Minute
    85setup = SetSystemTime(SystemTime)
    86
    87End Function
    88
    关于DLL的注册,通常VB在本机上编译后,会自动将DLL注册;但如果你要放到IIS服务器上,请使用如下方法:
    1、将systimeset.dll拷贝到c:\Windows\system32下;
    2、在开始菜单的运行里面输入:regsvr32 systimeset.dll     (敲回车啊)
    3、因为修改服务器的时间,INTERNET来宾帐户不具有该权限,设立权限请打开控制面版中的“管理工具”,然后打开“本地安全策略”--“用户权力指派”,双击“更改系统时间”,在弹出的对话框中点“添加用户或组”,将INETNET来宾帐户加入进来。
    4、一切完毕后,将IIS服务重新启动一次。

    在上面的设置完毕后,使用systimeset.dll组件的ASP代码页面如下:

    将其编译为systimeset.dll的文件。

     1〈% @language=“VBScript“ %〉
     2〈%
     3function SetTime(strYear,strMonth,strDay)
     4response.Expires=0
     5set obj=server.createobject(“systimeset.timeset“)
     6    obj.Year=strYear
     7    obj.Month=strMonth
     8    obj.Day=strDay
     9    if Hour(now())-8〉0 then
    10    obj.Hour=Hour(now())-8
    11    else
    12    obj.Hour=8
    13    end if
    14    obj.Minute=Minute(now())
    15    obj.Second=Second(now())
    16    obj.setup
    17
    18set obj=Nothing
    19end function
    20
    21if request(“act“)=“modi“ then
    22   call SetTime(request.Form(“strYear“),request.Form(“strMonth“),request.Form(“strDay“))
    25end if
    26%〉
    27〈form id=“form1“ name=“form1“ method=“post“ action=“?act=modi“〉
    28  〈table width=“290“ border=“0“〉
    29    〈tr〉
    30      〈td width=“77“〉〈input name=“strYear“ type=“text“ id=“strYear“ value=“〈%=Year(now())%〉“ size=“8“ /〉〈/td〉
    33      〈td width=“49“〉〈input name=“strMonth“ type=“text“ id=“strMonth“ value=“〈%=Month(now())%〉“ size=“5“ /〉〈/td〉
    36      〈td width=“48“〉〈input name=“strDay“ type=“text“ id=“strDay“ value=“〈%=Day(now())%〉“ size=“5“ /〉〈/td〉
    39      〈td width=“98“〉〈input type=“submit“ name=“Submit“ value=“修改日期“ /〉〈/td〉
    40    〈/tr〉
    41  〈/table〉
    42〈/form〉
    43

    将上面的ASP代码页面粘贴到一个空的ASP文件中,然后在IIS中将站点设置好就可以了。(设置IIS虚拟目录也可以的。)

     [文章来源:“十万个为什么”电脑学习网]
     [网络地址:http://why100000.com]
     [版权声明:除本站部分特别声明禁止转载的专稿外,其他的文章可以自由转载,但请务必注明出处和原始作者。本站文章版权归文章原作者所有。如果本站转载的文章有版权问题请联系本站,我们会尽快予以更正。]
 

【字体:[大] [中] [小] 【加入收藏】 【发表评论】 【关闭本窗口】

Copyright © “十万个为什么”电脑学习网 2000-2007 陕ICP备06007929号
站务联系:MSN & Email:zhangking2008@gmail.com  QQ:9365822