程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 用ASP+DLL實現WEB方式修改服務器時間

用ASP+DLL實現WEB方式修改服務器時間

編輯:.NET實例教程

    昨天一個朋友有個需求,是要通過WEB方式,修改IIS服務器上的時間,由於他的系統是ASP 3.0下開發的,所以本例子的代碼是ASP的,不是ASP.Net,但是本人寫這個文章是想拋磚引玉,畢竟編寫程序關鍵的不是語言,更重要的是一種思想,把程序語言理解為一種工具,把編程思想理解為解決問題的思路和方法,那麼編寫出來的程序就是:利用“工具”按照解決問題的“思想”去解決一個問題。
  
  首先,要感謝網友“小虎”,我是在網上看了他寫的一篇關於用VB 6.0編寫DLL組件FOR ASP的文章改寫的,他的DLL代碼只實現了改寫小時和分鐘,我增加了年、月、日、秒的修改。
  
  首先,在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
  將其編譯為systimeset.dll的文件。 
   
  關於DLL的注冊,通常VB在本機上編譯後,會自動將DLL注冊;但如果你要放到IIS服務器上,請使用如下方法:
  1、將systimeset.dll拷貝到c:\Windows\system32下;
  2、在開始菜單的運行裡面輸入:regsvr32 systimeset.dll (敲回車啊)
  3、因為修改服務器的時間,INTERNET來賓帳戶不具有該權限,設立權限請打開控制面版中的“管理工具”,然後打開“本地安全策略”--“用戶權力指派”,雙擊“更改系統時間”,在彈出的對話框中點“添加用戶或組”,將INETNET來賓帳戶加入進來。
  4、一切完畢後,將IIS服務重新啟動一次。
  
  
  在上面的設置完畢後,使用systimeset.dll組件的ASP代碼頁面如下:
  
  
   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
  23
  24("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())%>"
  31
  32size="8" /></td>
  33 <td width="49"><input name="strMonth" type="text" id="strMonth" value="<%=Month(now
  34
  35())%>" size="5" /></td>
  36 <td width="48"><input name="strDay" type="text" id="strDay" value="<%=Day(now())%>"
  37
  38size="5" /></td>
  39 <td width="98"><input type="submit" name="Submit" value="修改日期" /></td>
  40 </tr>
  41 </table>
  42</form>
  43
  以上是所有實現的代碼,有問題可以加我QQ:17020415
  
  將上面的ASP代碼頁面粘貼到一個空的ASP文件中,然後在IIS中將站點設置好就可以了。(設置IIS虛擬目錄也可以的。)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved