เมื่อวานนี้ เพื่อนคนหนึ่งมีคำขอให้แก้ไขเวลาบนเซิร์ฟเวอร์ IIS ผ่านทางเว็บ เนื่องจากระบบของเขาได้รับการพัฒนาภายใต้ ASP 3.0 รหัสในตัวอย่างนี้จึงเป็น ASP ไม่ใช่ ASP.NET แต่ฉันแค่ต้องการเขียนบทความนี้ เพื่อให้ความกระจ่างแก่สิ่งต่างๆ ท้ายที่สุดแล้ว สิ่งสำคัญในการเขียนโปรแกรมไม่ใช่ภาษา แต่ที่สำคัญกว่านั้น คือ แนวคิด หากคุณเข้าใจภาษาการเขียนโปรแกรมในฐานะเครื่องมือ และเข้าใจแนวคิดในการเขียนโปรแกรมเป็นแนวคิดและวิธีการในการแก้ปัญหา โปรแกรมที่คุณเขียนคือ การใช้ "เครื่องมือ" ใช้ในการแก้ปัญหาตาม "แนวคิด" ในการแก้ปัญหา
ก่อนอื่นฉันอยากจะขอบคุณชาวเน็ต "Xiaohu" ที่ฉันเขียนมันใหม่หลังจากอ่านบทความที่เขาเขียนบนอินเทอร์เน็ตเกี่ยวกับการใช้ VB 6.0 เพื่อเขียนส่วนประกอบ DLL สำหรับ ASP ของฉันเท่านั้นที่รับรู้ถึงการเขียนใหม่ ปี, เดือน, วัน, การแก้ไขครั้งที่สอง
ขั้นแรก สร้างโครงการ ActiveX Dll ใน VB 6.0 ข้อมูลจะเป็นดังนี้:
ชื่อโครงการ: systimeset
ชื่อโมดูลคลาส: กำหนดเวลา
รหัสโมดูลคลาสของ VB 6.0 เป็นดังนี้:
1ตัวเลือกที่ชัดเจน
2 เวลาระบบส่วนตัวเป็น SystemTime
3ฟังก์ชั่นประกาศส่วนตัว SetSystemTime () ฟังก์ชั่น SetSystemTime Lib "kernel32" (lpSystemTime As SystemTime) ตราบใดที่
4เวลาระบบประเภทส่วนตัว
5 ปีเป็นจำนวนเต็ม
6 เดือนเป็นจำนวนเต็ม
7 wDayOfWeek เป็นจำนวนเต็ม
8 วันเป็นจำนวนเต็ม
9 ชั่วโมงเป็นจำนวนเต็ม
10 นาทีเป็นจำนวนเต็ม
11 วินาทีเป็นจำนวนเต็ม
12 มิลลิวินาทีเป็นจำนวนเต็ม
13ประเภทสุดท้าย
14
15ดิม tmp
16
17ส่วนตัว m_Hour เป็นจำนวนเต็ม
18ส่วนตัว m_Minute เป็นจำนวนเต็ม
19ส่วนตัว m_Year เป็นจำนวนเต็ม
20ส่วนตัว m_Month เป็นจำนวนเต็ม
21ส่วนตัว m_Day เป็นจำนวนเต็ม
22ส่วนตัว m_Second เป็นจำนวนเต็ม
ยี่สิบสาม
24' ดัดแปลงโดย Li Xiyuan วันที่แก้ไข: 31-08-2549 รายการแก้ไข: เพิ่มการดำเนินการสำหรับปี เดือน วัน และวินาที
25'---------------------
26' ปี
27ทรัพย์สินสาธารณะรับ()ทรัพย์สินรับปี() เป็นจำนวนเต็ม
28ปี = ม_ปี
29สิ้นสุดทรัพย์สิน
30ทรัพย์สินสาธารณะ Let()ทรัพย์สิน Let Year(tmp_Year As Integer)
31m_Year = tmp_ปี
32สิ้นสุดทรัพย์สิน
33'-------------------
34' เดือน
35ทรัพย์สินสาธารณะรับ()ทรัพย์สินรับเดือน() เป็นจำนวนเต็ม
36เดือน = ม_เดือน
37สิ้นสุดคุณสมบัติ
38ทรัพย์สินสาธารณะให้เช่า()ทรัพย์สินให้เช่าเดือน(tmp_Month As Integer)
39m_เดือน = tmp_เดือน
40สิ้นสุดทรัพย์สิน
41'-----------------------------------
วัน 42'
43ทรัพย์สินสาธารณะรับ () รับทรัพย์สินวัน () เป็นจำนวนเต็ม
44วัน = m_วัน
45สิ้นสุดคุณสมบัติ
46ทรัพย์สินสาธารณะ Let()ทรัพย์สิน Let Day(tmp_Day As Integer)
47m_Day = tmp_วัน
48ทรัพย์สินสุดท้าย
49'--------------------
50' วินาที
51ทรัพย์สินสาธารณะรับ () คุณสมบัติรับที่สอง () เป็นจำนวนเต็ม
52วินาที = m_วินาที
53สิ้นสุดทรัพย์สิน
54ทรัพย์สินสาธารณะ Let() คุณสมบัติ Let Second(tmp_Second As Integer)
55m_Second = tmp_วินาที
56สิ้นสุดทรัพย์สิน
57
58
59
60ทรัพย์สินสาธารณะรับ () รับทรัพย์สินชั่วโมง () เป็นจำนวนเต็ม
61ชั่วโมง = m_Hour
62สิ้นสุดทรัพย์สิน
63ทรัพย์สินสาธารณะ Let() คุณสมบัติ Let Hour(tmp_Hour As Integer)
64m_Hour = tmp_Hour
65สิ้นสุดทรัพย์สิน
66ทรัพย์สินสาธารณะรับ () คุณสมบัติรับนาที () เป็นจำนวนเต็ม
67นาที = m_นาที
68ทรัพย์สินสุดท้าย
69ทรัพย์สินสาธารณะ Let() คุณสมบัติ Let นาที (tmp_Minute As Integer)
70m_Minute = tmp_Minute
71สิ้นสุดทรัพย์สิน
72
73
74
75
76การตั้งค่าฟังก์ชันสาธารณะ()การตั้งค่าฟังก์ชัน() เป็นจำนวนเต็ม
77SystemTime.wDay = วัน
78'SystemTime.wDayOfWeek = 1
79SystemTime.wMilliseconds = 0
80SystemTime.wMonth = เดือน
81SystemTime.wSecond = วินาที
82SystemTime.wYear = ปี
83SystemTime.wHour = ชั่วโมง
84SystemTime.wMinute = นาที
85setup = SetSystemTime(SystemTime)
86
87สิ้นสุดฟังก์ชัน
88
คอมไพล์เป็นไฟล์ชื่อ systimeset.dll
เกี่ยวกับการลงทะเบียน DLL โดยปกติ VB จะลงทะเบียน DLL โดยอัตโนมัติหลังจากคอมไพล์บนเครื่องท้องถิ่น แต่ถ้าคุณต้องการวางไว้บนเซิร์ฟเวอร์ IIS โปรดใช้วิธีการต่อไปนี้:
1. คัดลอก systimeset.dll ไปที่ c:WINDOWSsystem32;
2. ในเมนูเรียกใช้ ให้ป้อน: regsvr32 systimeset.dll (กด Enter)
3. เนื่องจากบัญชีแขกของ INTERNET ไม่มีสิทธิ์ในการแก้ไขเวลาของเซิร์ฟเวอร์ หากต้องการตั้งค่าการอนุญาต โปรดเปิด "เครื่องมือการดูแลระบบ" ในแผงควบคุม จากนั้นเปิด "นโยบายความปลอดภัยท้องถิ่น" - "การกำหนดสิทธิ์ผู้ใช้" สองครั้ง คลิก "เปลี่ยนเวลาระบบ" ” คลิก “เพิ่มผู้ใช้หรือกลุ่ม” ในกล่องโต้ตอบป๊อปอัป และเพิ่มบัญชีแขก INETNET
4. หลังจากทุกอย่างเสร็จสิ้น ให้เริ่มบริการ IIS ใหม่อีกครั้ง
หลังจากการตั้งค่าข้างต้นเสร็จสมบูรณ์ โค้ดเพจ ASP ที่ใช้คอมโพเนนต์ systimeset.dll จะเป็นดังนี้:
1<% @ภาษา="vbscript" %>
2<%
3 ฟังก์ชั่น SetTime (strYear, strMonth, strDay)
4response.Expires=0
5set obj=server.createobject("systimeset.timeset")
6 obj.Year=strYear
7 obj.Month=strเดือน
8 obj.Day=strDay
9 ถ้า ชั่วโมง(ตอนนี้())-8>0 แล้ว
10 obj.Hour=ชั่วโมง(ตอนนี้())-8
11 อื่น ๆ
12 obj.ชั่วโมง=8
13 จบถ้า
14 obj.Minute=นาที(ตอนนี้())
15 obj.Second=วินาที(ตอนนี้())
16obj.ตั้งค่า
17
18set obj=ไม่มีอะไร
ฟังก์ชัน 19end
20
21ถ้า request("act")="modi" แล้ว
22 โทร SetTime(request.Form("strYear"),request.Form("strMonth"),request.Form
ยี่สิบสาม
24("strDay"))
25จบถ้า
26%>
27<form id="form1" name="form1" method="post" action="?act=modi">
28 <ความกว้างของตาราง="290" border="0">
29 <tr>
30 <td width="77"><input name="strYear" type="text" id="strYear" value="<%=ปี(ตอนนี้())%>"
31
32size="8" /></td>
33 <td width="49"><input name="strMonth" type="text" id="strMonth" value="<%=เดือน(ตอนนี้
34
35())%>" size="5" /></td>
36 <td width="48"><input name="strDay" type="text" id="strDay" value="<%=วัน(ตอนนี้())%>"
37
38size="5" /></td>
39 <td width="98"><input type="submit" name="Submit" value="วันที่แก้ไข" /></td>
40 </tr>
41 </ตาราง>
42</แบบฟอร์ม>
43
ข้างต้นคือโค้ดที่ใช้งานทั้งหมด หากคุณมีคำถามใดๆ โปรดเพิ่มฉันที่ QQ: 17020415
วางโค้ดเพจ ASP ด้านบนลงในไฟล์ ASP เปล่า จากนั้นตั้งค่าไซต์ใน IIS (คุณยังสามารถตั้งค่าไดเรกทอรีเสมือน IIS ได้ด้วย)
http://www.cnblogs.com/lixyvip/archive/2006/09/02/492693.html