Ayer, un amigo recibió una solicitud para modificar la hora en el servidor IIS a través de WEB. Dado que su sistema fue desarrollado bajo ASP 3.0, el código en este ejemplo es ASP, no ASP.NET, pero estoy escribiendo este artículo. Para arrojar algo de luz sobre las cosas, después de todo, la clave para escribir un programa no es el lenguaje, sino más importantemente, una idea. Si entiendes el lenguaje de programación como una herramienta y entiendes las ideas de programación como ideas y métodos para resolver problemas, entonces. El programa que escribe es: usar "Herramientas" que se utilizan para resolver un problema de acuerdo con las "ideas" de resolver el problema.
En primer lugar, me gustaría agradecer al internauta "Xiaohu". Lo reescribí después de leer un artículo que escribió en Internet sobre el uso de VB 6.0 para escribir componentes DLL PARA ASP. Su código DLL solo se reescribió durante horas y minutos. años, mes, día, segunda modificación.
Primero, cree un proyecto ActiveX Dll en VB 6.0. La información es la siguiente:
Nombre del proyecto: systimeset.
Nombre del módulo de clase: timeset
El código del módulo de clase de VB 6.0 es el siguiente:
1Opción explícita
2Tiempo del sistema privado como tiempo del sistema
3Función de declaración privada SetSystemTime()Función SetSystemTime Lib "kernel32" (lpSystemTime como SystemTime) siempre y cuando
4 Hora del sistema de tipo privado
5 wAño como número entero
6 meses como número entero
7 wDayOfWeek como número entero
8 wDía como número entero
9 horas como número entero
10 w Minuto como número entero
11 w Segundo como número entero
12 wMilisegundos como número entero
13Tipo de extremo
14
15Tmp tenue
16
17Privado m_Hour como entero
18Privado m_Minute como entero
19Privado m_Year como entero
20Privado m_Month como entero
21Privado m_Day como entero
22Privado m_Second como entero
veintitrés
24' Modificado por Li Xiyuan Fecha de modificación: 2006-08-31 Elemento de modificación: Agregar operaciones para año, mes, día y segundos
25'--------------------
26' años
27Propiedad pública Get()Propiedad Obtener año() como número entero
28Año = m_Año
29 Propiedad final
30Propiedad pública Let()Propiedad Let Year(tmp_Year como número entero)
31m_Año = tmp_Año
32Propiedad final
33'--------------------
34' meses
35Propiedad pública Get()Propiedad Obtener mes() como número entero
36Mes = m_Mes
37Propiedad final
38Propiedad pública Let()Propiedad Let Month(tmp_Month como número entero)
39m_Mes = tmp_Mes
40Propiedad final
41'--------------------
42' día
43Propiedad pública Get()Propiedad Get Day() como número entero
44Día = m_Día
45Propiedad final
46Propiedad pública Let()Propiedad Let Day(tmp_Day como número entero)
47m_Día = tmp_Día
48Propiedad final
49'--------------------
50' segundos
51Propiedad pública Get()Propiedad Obtener segundo() como número entero
52Segundo = m_Segundo
53Propiedad final
54Propiedad pública Let()Propiedad Let Second(tmp_Second como entero)
55m_segundo = tmp_segundo
56Propiedad final
57
58
59
60Propiedad pública Get()Propiedad Obtener hora() como número entero
61Hora = m_Hora
62Propiedad final
63Propiedad pública Let()Propiedad Let Hour(tmp_Hour como número entero)
64m_hora = tmp_hora
65Propiedad final
66Propiedad pública Get()Propiedad Obtener minuto() como número entero
67Minuto = m_Minuto
68Propiedad final
69Propiedad pública Let()Propiedad Let Minute(tmp_Minute como entero)
70m_Minuto = tmp_Minuto
71Propiedad final
72
73
74
75
76Configuración de función pública()Configuración de función() como número entero
77SystemTime.wDay = Día
78'SystemTime.wDayOfWeek = 1
79SystemTime.wMilisegundos = 0
80SystemTime.wMonth = Mes
81SystemTime.wSecond = Segundo
82SystemTime.wAño = Año
83SystemTime.wHora = Hora
84SystemTime.wMinute = Minuto
85configuración = EstablecerTiempodelSistema(TiempodelSistema)
86
87Función final
88
Compílelo en un archivo llamado systimeset.dll.
Con respecto al registro de DLL, normalmente VB registrará automáticamente el DLL después de compilarlo en la máquina local, pero si desea colocarlo en el servidor IIS, utilice el siguiente método:
1. Copie systimeset.dll a c:WINDOWSsystem32;
2. En el menú Ejecutar, ingrese: regsvr32 systimeset.dll (presione Enter)
3. Debido a que la cuenta de invitado de INTERNET no tiene este permiso para modificar la hora del servidor, para configurar los permisos, abra "Herramientas administrativas" en el panel de control, luego abra "Política de seguridad local" - "Asignación de derechos de usuario", doble- haga clic en "Cambiar hora del sistema", haga clic en "Agregar usuario o grupo" en el cuadro de diálogo emergente y agregue la cuenta de invitado de INETNET.
4. Una vez completado todo, reinicie el servicio IIS una vez.
Una vez completadas las configuraciones anteriores, la página de códigos ASP que utiliza el componente systimeset.dll es la siguiente:
1<% @language="vbscript" %>
2<%
3función Establecer Hora(strAño,strMes,strDía)
4respuesta.Expira=0
5set obj=server.createobject("systimeset.timeset")
6 obj.Año=strAño
7 obj.Mes=cadenaMes
8 obj.Día=strDía
9 si Hora(ahora())-8>0 entonces
10 obj.Hora=Hora(ahora())-8
11 más
12 obj.Hora=8
13 terminar si
14 obj.Minuto=Minuto(ahora())
15 obj.Segundo=Segundo(ahora())
16obj.configuración
17
18set obj=Nada
19función final
20
21si solicitud("act")="modi" entonces
22 llamar a SetTime(solicitud.Form("strYear"),solicitud.Form("strMonth"),solicitud.Form
veintitrés
24("strDía"))
25fin si
26%>
27<formulario id="form1" nombre="form1" método="publicación" acción="?act=modi">
28 <ancho de tabla="290" borde="0">
29 <tr>
30 <td ancho="77"><nombre de entrada="strAño" tipo="text" id="strAño" valor="<%=Año(ahora())%>"
31
32tamaño="8" /></td>
33 <td width="49"><input name="strMonth" type="text" id="strMonth" value="<%=Mes(ahora
34
35())%>" tamaño="5" /></td>
36 <td width="48"><input name="strDay" type="text" id="strDay" value="<%=Día(ahora())%>"
37
38tamaño="5" /></td>
39 <td ancho="98"><tipo de entrada="enviar" nombre="Enviar" valor="Fecha de modificación" /></td>
40</tr>
41 </tabla>
42</form>
43
Lo anterior es todo el código implementado. Si tiene alguna pregunta, agrégueme en QQ: 17020415.
Pegue la página de códigos ASP anterior en un archivo ASP vacío y luego configure el sitio en IIS. (También es posible configurar un directorio virtual IIS).
http://www.cnblogs.com/lixyvip/archive/2006/09/02/492693.html