Ontem um amigo recebeu uma solicitação para modificar a hora no servidor IIS através da WEB Como o sistema dele foi desenvolvido em ASP 3.0, o código deste exemplo é ASP, não ASP.NET, mas estou escrevendo este artigo. para esclarecer as coisas Afinal, a chave para escrever um programa não é a linguagem, mas, mais importante, uma ideia. Se você entende a linguagem de programação como uma ferramenta e entende as ideias de programação como ideias e métodos para resolver problemas, então o. programa que você escreve é: usar "Ferramentas" são usadas para resolver um problema de acordo com as "idéias" de resolver o problema.
Em primeiro lugar, gostaria de agradecer ao internauta "Xiaohu". Eu o reescrevi depois de ler um artigo que ele escreveu na Internet sobre o uso do VB 6.0 para escrever componentes DLL PARA ASP. anos, mês, dia, segunda modificação.
Primeiro, crie um projeto ActiveX DLL no VB 6.0. As informações são as seguintes:
Nome do projeto: systimeset.
Nome do módulo de classe: timeset
O código do módulo de classe do VB 6.0 é o seguinte:
1Opção Explícita
2Privado SystemTime como SystemTime
3Função de declaração privada SetSystemTime()Função SetSystemTime Lib "kernel32" (lpSystemTime As SystemTime) As Long
4Hora do sistema de tipo privado
5 anos como inteiro
6 wMonth como inteiro
7 wDayOfWeek como inteiro
8 wDay como inteiro
9 horas como inteiro
10 wMinute como inteiro
11 wSegundo como inteiro
12 w Milissegundos como inteiro
13Tipo final
14
15 Dim tmp
16
17Privado m_Hour como inteiro
18Privado m_Minute como inteiro
19Privado m_Year como inteiro
20Privado m_Month como número inteiro
21Privado m_Day como inteiro
22Privado m_Second como inteiro
vinte e três
24' Modificado por Li Xiyuan Data de modificação: 31/08/2006 Item de modificação: Adicionar operações para ano, mês, dia e segundos
25'--------------------
26' anos
27. Propriedade pública Get() Propriedade Get Year() como número inteiro
28Ano = m_Ano
29Fim da Propriedade
30 Propriedade Pública Let() Propriedade Let Year(tmp_Year As Integer)
31m_Ano = tmp_Ano
32Fim da Propriedade
33'--------------------
34' meses
35. Propriedade pública Get() Propriedade Get Month() como número inteiro
36Mês = m_Mês
37Fim da propriedade
38Propriedade Pública Let()Propriedade Let Month(tmp_Month As Integer)
39m_mês = tmp_mês
40Fim da Propriedade
41'--------------------
42' dia
43. Propriedade pública Get() Propriedade Get Day() como número inteiro
44Dia = m_Dia
45Fim da Propriedade
46 Propriedade Pública Let() Propriedade Let Day(tmp_Day As Integer)
47m_Dia = tmp_Dia
48Fim da propriedade
49'--------------------
50' segundos
51Propriedade pública Get()Propriedade Get Second() como número inteiro
52Segundo = m_Segundo
53Fim da propriedade
54Propriedade Pública Let()Propriedade Let Second(tmp_Second As Integer)
55m_Second = tmp_Second
56Fim da propriedade
57
58
59
60Get propriedade pública()Property Get Hour() como número inteiro
61Hora = m_Hora
62Fim da Propriedade
63Propriedade Pública Let()Propriedade Let Hour(tmp_Hour As Integer)
64m_Hora = tmp_Hora
65Fim da propriedade
66 Propriedade pública Get() Propriedade Get Minute() como número inteiro
67minuto = m_minuto
68Fim da propriedade
69Propriedade Pública Let()Propriedade Let Minute(tmp_Minute As Integer)
70m_Minuto = tmp_Minuto
71Fim da propriedade
72
73
74
75
76Configuração de função pública()Configuração de função() como inteiro
77SystemTime.wDay = Dia
78'SystemTime.wDayOfWeek = 1
79SystemTime.wMilisegundos = 0
80SystemTime.wMonth = Mês
81SystemTime.wSecond = Segundo
82SystemTime.wYear = Ano
83SystemTime.wHour = Hora
84SystemTime.wMinute = Minuto
85setup = SetSystemTime(SystemTime)
86
87Função Final
88
Compile-o em um arquivo chamado systimeset.dll.
Em relação ao registro da DLL, normalmente o VB irá registrar automaticamente a DLL após ela ser compilada na máquina local, mas se você quiser colocá-la no servidor IIS, use o seguinte método:
1. Copie systimeset.dll para c:WINDOWSsystem32;
2. No menu executar, digite: regsvr32 systimeset.dll (pressione Enter)
3. Como a conta de convidado da INTERNET não tem essa permissão para modificar a hora do servidor, para configurar as permissões, abra "Ferramentas Administrativas" no painel de controle, depois abra "Política de Segurança Local" - "Atribuição de Direitos do Usuário", duplo- clique em "Alterar hora do sistema" ”, clique em “Adicionar usuário ou grupo” na caixa de diálogo pop-up e adicione a conta de convidado INETNET.
4. Depois que tudo estiver concluído, reinicie o serviço IIS uma vez.
Depois que as configurações acima forem concluídas, a página de código ASP usando o componente systimeset.dll será a seguinte:
1<% @idioma="vbscript" %>
2<%
3funções SetTime(strYear,strMonth,strDay)
4resposta.Expires=0
5set obj=server.createobject("systimeset.timeset")
6 obj.Ano=strAno
7 obj.Mês=strMês
8 obj.Day=strDia
9 se Hora(agora())-8>0 então
10 obj.Hora=Hora(agora())-8
11 mais
12 obj.Hora = 8
13 terminar se
14 obj.Minuto=Minuto(agora())
15 obj.Second = Segundo (agora ())
16obj.setup
17
18set obj=Nada
19função final
20
21if request("act")="modi" então
22 ligue SetTime(request.Form("strYear"),request.Form("strMonth"),request.Form
vinte e três
24("strDia"))
25terminar se
26%>
27<form id="form1" name="form1" method="post" action="?act=modi">
28 <largura da tabela="290" border="0">
29
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="<%=Mês(agora
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="Data de modificação" /></td>
40
41 </tabela>
42</form>
43
O código acima é todo o código implementado. Se você tiver alguma dúvida, adicione-me em QQ: 17020415.
Cole a página de código ASP acima em um arquivo ASP vazio e configure o site no IIS. (Também é possível configurar um diretório virtual IIS.)
http://www.cnblogs.com/lixyvip/archive/2006/09/02/492693.html