Gestern hatte ein Freund eine Anfrage, die Zeit auf dem IIS-Server über WEB zu ändern. Da sein System unter ASP 3.0 entwickelt wurde, ist der Code in diesem Beispiel ASP, nicht ASP.NET, aber ich schreibe diesen Artikel nur Um etwas Licht ins Dunkel zu bringen, ist der Schlüssel zum Schreiben eines Programms nicht die Sprache, sondern vor allem eine Idee. Wenn Sie Programmiersprache als Werkzeug verstehen und Programmierideen als Ideen und Methoden zur Lösung von Problemen verstehen, dann ist die Das Programm, das Sie schreiben, lautet: „Werkzeuge“ werden verwendet, um ein Problem gemäß den „Ideen“ zur Lösung des Problems zu lösen.
Zunächst möchte ich dem Internetnutzer „Xiaohu“ danken, nachdem ich einen Artikel über die Verwendung von VB 6.0 zum Schreiben von DLL-Komponenten für ASP gelesen habe Jahre, Monat, Tag, zweite Änderung.
Erstellen Sie zunächst ein ActiveX-DLL-Projekt in VB 6.0. Die Informationen lauten wie folgt:
Projektname: systimeset
Name des Klassenmoduls: timeset
Der Klassenmodulcode von VB 6.0 lautet wie folgt:
1Option Explizit
2Private SystemTime als SystemTime
3Private Declare Function SetSystemTime()Function SetSystemTime Lib „kernel32“ (lpSystemTime As SystemTime) As Long
4Private Systemzeit
5 wJahr als Ganzzahl
6 wMonth als Ganzzahl
7 wDayOfWeek als Ganzzahl
8 wDay als Ganzzahl
9 wStunde als Ganzzahl
10 wMinute als Ganzzahl
11 wSecond als Ganzzahl
12 wMillisekunden als Ganzzahl
13Endtyp
14
15Dim tmp
16
17Private m_Hour als Ganzzahl
18Private m_Minute als Ganzzahl
19Private m_Year als Ganzzahl
20Private m_Month als Ganzzahl
21Private m_Day als Ganzzahl
22Private m_Second als Ganzzahl
dreiundzwanzig
24' Geändert von Li Xiyuan Änderungsdatum: 31.08.2006 Änderungselement: Operationen für Jahr, Monat, Tag und Sekunden hinzufügen
25'------
26' Jahre
27Öffentliche Eigenschaft Get()Property Get Year() As Integer
28Jahr = m_Jahr
29End-Eigenschaft
30Public Property Let()Property Let Year(tmp_Year As Integer)
31m_Year = tmp_Year
32End-Eigenschaft
33'------
34' Monate
35Public Property Get()Property Get Month() As Integer
36Monat = m_Monat
37End-Eigenschaft
38Public Property Let()Property Let Month(tmp_Month As Integer)
39m_Month = tmp_Month
40End-Eigenschaft
41'--------------------
42' Tag
43Öffentliche Eigenschaft Get()Property Get Day() As Integer
44Day = m_Day
45End-Eigenschaft
46Public Property Let()Property Let Day(tmp_Day As Integer)
47m_Day = tmp_Day
48End-Eigenschaft
49'--------------------
50' Sekunden
51Öffentliche Eigenschaft Get()Property Get Second() As Integer
52Second = m_Second
53End-Eigenschaft
54Öffentliche Eigenschaft Let()Property Let Second(tmp_Second As Integer)
55m_Second = tmp_Second
56End-Eigenschaft
57
58
59
60Public Property Get()Property Get Hour() As Integer
61Stunde = m_Stunde
62End-Eigenschaft
63Öffentliche Eigenschaft Let()Property Let Hour(tmp_Hour As Integer)
64m_Hour = tmp_Hour
65End-Eigenschaft
66Öffentliche Eigenschaft Get()Property Get Minute() As Integer
67Minute = m_Minute
68End-Eigenschaft
69Öffentliche Eigenschaft Let()Property Let Minute(tmp_Minute As Integer)
70m_Minute = tmp_Minute
71End-Eigenschaft
72
73
74
75
76Öffentliche Funktion setup()Funktion setup() als Ganzzahl
77SystemTime.wDay = Tag
78'SystemTime.wDayOfWeek = 1
79SystemTime.wMilliseconds = 0
80SystemTime.wMonth = Monat
81SystemTime.wSecond = Sekunde
82SystemTime.wYear = Jahr
83SystemTime.wHour = Stunde
84SystemTime.wMinute = Minute
85setup = SetSystemTime(SystemTime)
86
87End-Funktion
88
Kompilieren Sie es in eine Datei namens systimeset.dll.
Was die Registrierung der DLL betrifft, registriert VB die DLL normalerweise automatisch, nachdem sie auf dem lokalen Computer kompiliert wurde. Wenn Sie sie jedoch auf dem IIS-Server ablegen möchten, verwenden Sie bitte die folgende Methode:
1. Kopieren Sie systimeset.dll nach c:WINDOWSsystem32;
2. Geben Sie im Ausführungsmenü Folgendes ein: regsvr32 systimeset.dll (drücken Sie die Eingabetaste).
3. Da das INTERNET-Gastkonto nicht über diese Berechtigung zum Ändern der Serverzeit verfügt, öffnen Sie zum Einrichten von Berechtigungen bitte „Verwaltungstools“ in der Systemsteuerung und dann „Lokale Sicherheitsrichtlinie“ – „Zuweisung von Benutzerrechten“. Klicken Sie auf „Systemzeit ändern“, klicken Sie im Popup-Dialogfeld auf „Benutzer oder Gruppe hinzufügen“ und fügen Sie das INETNET-Gastkonto hinzu.
4. Nachdem alles abgeschlossen ist, starten Sie den IIS-Dienst einmal neu.
Nachdem die oben genannten Einstellungen abgeschlossen sind, lautet die ASP-Codepage, die die Komponente systimeset.dll verwendet, wie folgt:
1<% @sprache="vbscript" %>
2<%
3Funktion 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 wenn Hour(now())-8>0 dann
10 obj.Hour=Hour(now())-8
11 sonst
12 obj.Stunde=8
13 Ende wenn
14 obj.Minute=Minute(now())
15 obj.Second=Second(now())
16obj.setup
17
18set obj=Nichts
19end-Funktion
20
21if request("act")="modi" then
22 Rufen Sie SetTime(request.Form("strYear"),request.Form("strMonth"),request.Form auf
dreiundzwanzig
24("strDay"))
25Ende wenn
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="Änderungsdatum" /></td>
40 </tr>
41 </table>
42</form>
43
Das Obige ist der gesamte implementierte Code. Wenn Sie Fragen haben, fügen Sie mich bitte unter QQ: 17020415 hinzu.
Fügen Sie die obige ASP-Codepage in eine leere ASP-Datei ein und richten Sie dann die Site in IIS ein. (Es ist auch möglich, ein virtuelles IIS-Verzeichnis einzurichten.)
http://www.cnblogs.com/lixyvip/archive/2006/09/02/492693.html