用ASP+DLL实现WEB方式修改服务器时间
更新时间:2006年09月14日 00:00:00 作者:
昨天一个朋友有个需求,是要通过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的类模块代码如下:
Option Explicit
Private SystemTime As SystemTime
Private Declare Function SetSystemTime()Function SetSystemTime Lib "kernel32" (lpSystemTime As SystemTime) As Long
Private Type SystemTime
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
Dim tmp
Private m_Hour As Integer
Private m_Minute As Integer
Private m_Year As Integer
Private m_Month As Integer
Private m_Day As Integer
Private m_Second As Integer
'由李锡远修改 修改日期:2006-08-31 修改项目:增加对年、月、日、秒的操作
'--------------------
'年
Public Property Get()Property Get Year() As Integer
Year = m_Year
End Property
Public Property Let()Property Let Year(tmp_Year As Integer)
m_Year = tmp_Year
End Property
'--------------------
'月
Public Property Get()Property Get Month() As Integer
Month = m_Month
End Property
Public Property Let()Property Let Month(tmp_Month As Integer)
m_Month = tmp_Month
End Property
'--------------------
'日
Public Property Get()Property Get Day() As Integer
Day = m_Day
End Property
Public Property Let()Property Let Day(tmp_Day As Integer)
m_Day = tmp_Day
End Property
'--------------------
'秒
Public Property Get()Property Get Second() As Integer
Second = m_Second
End Property
Public Property Let()Property Let Second(tmp_Second As Integer)
m_Second = tmp_Second
End Property
Public Property Get()Property Get Hour() As Integer
Hour = m_Hour
End Property
Public Property Let()Property Let Hour(tmp_Hour As Integer)
m_Hour = tmp_Hour
End Property
Public Property Get()Property Get Minute() As Integer
Minute = m_Minute
End Property
Public Property Let()Property Let Minute(tmp_Minute As Integer)
m_Minute = tmp_Minute
End Property
Public Function setup()Function setup() As Integer
SystemTime.wDay = Day
'SystemTime.wDayOfWeek = 1
SystemTime.wMilliseconds = 0
SystemTime.wMonth = Month
SystemTime.wSecond = Second
SystemTime.wYear = Year
SystemTime.wHour = Hour
SystemTime.wMinute = Minute
setup = SetSystemTime(SystemTime)
End Function
将其编译为systimeset.dll的文件。
关于DLL的注册,通常VB在本机上编译后,会自动将DLL注册;但如果你要放到IIS服务器上,请使用如下方法:
1、将systimeset.dll拷贝到c:\WINDOWS\system32下;
2、在开始菜单的运行里面输入:regsvr32 systimeset.dll (敲回车啊)
3、因为修改服务器的时间,INTERNET来宾帐户不具有该权限,设立权限请打开控制面版中的“管理工具”,然后打开“本地安全策略”--“用户权力指派”,双击“更改系统时间”,在弹出的对话框中点“添加用户或组”,将INETNET来宾帐户加入进来。
4、一切完毕后,将IIS服务重新启动一次。
在上面的设置完毕后,使用systimeset.dll组件的ASP代码页面如下:
<% @language="vbscript" %>
<%
function SetTime(strYear,strMonth,strDay)
response.Expires=0
set obj=server.createobject("systimeset.timeset")
obj.Year=strYear
obj.Month=strMonth
obj.Day=strDay
if Hour(now())-8>0 then
obj.Hour=Hour(now())-8
else
obj.Hour=8
end if
obj.Minute=Minute(now())
obj.Second=Second(now())
obj.setup
set obj=Nothing
end function
if request("act")="modi" then
call SetTime(request.Form("strYear"),request.Form("strMonth"),request.Form
("strDay"))
end if
%>
<form id="form1" name="form1" method="post" action="?act=modi">
<table width="290" border="0">
<tr>
<td width="77"><input name="strYear" type="text" id="strYear" value="<%=Year(now())%>" size="8" /></td>
<td width="49"><input name="strMonth" type="text" id="strMonth" value="<%=Month(now())%>" size="5" /></td>
<td width="48"><input name="strDay" type="text" id="strDay" value="<%=Day(now())%>" size="5" /></td>
<td width="98"><input type="submit" name="Submit" value="修改日期" /></td>
</tr>
</table>
</form>
以上是所有实现的代码,有问题可以加我QQ:17020415
将上面的ASP代码页面粘贴到一个空的ASP文件中,然后在IIS中将站点设置好就可以了。(设置IIS虚拟目录也可以的。)
首先,要感谢网友“小虎”,我是在网上看了他写的一篇关于用VB 6.0编写DLL组件FOR ASP的文章改写的,他的DLL代码只实现了改写小时和分钟,我增加了年、月、日、秒的修改。
首先,在VB 6.0中建立一个ActiveX Dll工程项目,信息如下:
工程名称:systimeset
类模块名称:timeset
VB 6.0的类模块代码如下:
复制代码 代码如下:
Option Explicit
Private SystemTime As SystemTime
Private Declare Function SetSystemTime()Function SetSystemTime Lib "kernel32" (lpSystemTime As SystemTime) As Long
Private Type SystemTime
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
Dim tmp
Private m_Hour As Integer
Private m_Minute As Integer
Private m_Year As Integer
Private m_Month As Integer
Private m_Day As Integer
Private m_Second As Integer
'由李锡远修改 修改日期:2006-08-31 修改项目:增加对年、月、日、秒的操作
'--------------------
'年
Public Property Get()Property Get Year() As Integer
Year = m_Year
End Property
Public Property Let()Property Let Year(tmp_Year As Integer)
m_Year = tmp_Year
End Property
'--------------------
'月
Public Property Get()Property Get Month() As Integer
Month = m_Month
End Property
Public Property Let()Property Let Month(tmp_Month As Integer)
m_Month = tmp_Month
End Property
'--------------------
'日
Public Property Get()Property Get Day() As Integer
Day = m_Day
End Property
Public Property Let()Property Let Day(tmp_Day As Integer)
m_Day = tmp_Day
End Property
'--------------------
'秒
Public Property Get()Property Get Second() As Integer
Second = m_Second
End Property
Public Property Let()Property Let Second(tmp_Second As Integer)
m_Second = tmp_Second
End Property
Public Property Get()Property Get Hour() As Integer
Hour = m_Hour
End Property
Public Property Let()Property Let Hour(tmp_Hour As Integer)
m_Hour = tmp_Hour
End Property
Public Property Get()Property Get Minute() As Integer
Minute = m_Minute
End Property
Public Property Let()Property Let Minute(tmp_Minute As Integer)
m_Minute = tmp_Minute
End Property
Public Function setup()Function setup() As Integer
SystemTime.wDay = Day
'SystemTime.wDayOfWeek = 1
SystemTime.wMilliseconds = 0
SystemTime.wMonth = Month
SystemTime.wSecond = Second
SystemTime.wYear = Year
SystemTime.wHour = Hour
SystemTime.wMinute = Minute
setup = SetSystemTime(SystemTime)
End Function
将其编译为systimeset.dll的文件。
关于DLL的注册,通常VB在本机上编译后,会自动将DLL注册;但如果你要放到IIS服务器上,请使用如下方法:
1、将systimeset.dll拷贝到c:\WINDOWS\system32下;
2、在开始菜单的运行里面输入:regsvr32 systimeset.dll (敲回车啊)
3、因为修改服务器的时间,INTERNET来宾帐户不具有该权限,设立权限请打开控制面版中的“管理工具”,然后打开“本地安全策略”--“用户权力指派”,双击“更改系统时间”,在弹出的对话框中点“添加用户或组”,将INETNET来宾帐户加入进来。
4、一切完毕后,将IIS服务重新启动一次。
在上面的设置完毕后,使用systimeset.dll组件的ASP代码页面如下:
复制代码 代码如下:
<% @language="vbscript" %>
<%
function SetTime(strYear,strMonth,strDay)
response.Expires=0
set obj=server.createobject("systimeset.timeset")
obj.Year=strYear
obj.Month=strMonth
obj.Day=strDay
if Hour(now())-8>0 then
obj.Hour=Hour(now())-8
else
obj.Hour=8
end if
obj.Minute=Minute(now())
obj.Second=Second(now())
obj.setup
set obj=Nothing
end function
if request("act")="modi" then
call SetTime(request.Form("strYear"),request.Form("strMonth"),request.Form
("strDay"))
end if
%>
<form id="form1" name="form1" method="post" action="?act=modi">
<table width="290" border="0">
<tr>
<td width="77"><input name="strYear" type="text" id="strYear" value="<%=Year(now())%>" size="8" /></td>
<td width="49"><input name="strMonth" type="text" id="strMonth" value="<%=Month(now())%>" size="5" /></td>
<td width="48"><input name="strDay" type="text" id="strDay" value="<%=Day(now())%>" size="5" /></td>
<td width="98"><input type="submit" name="Submit" value="修改日期" /></td>
</tr>
</table>
</form>
以上是所有实现的代码,有问题可以加我QQ:17020415
将上面的ASP代码页面粘贴到一个空的ASP文件中,然后在IIS中将站点设置好就可以了。(设置IIS虚拟目录也可以的。)
相关文章
检查上传图片是否合法的函数,木马改后缀名、图片加恶意代码均逃不过
很多ASP程序检查上传图片是否合法往往只去检查文件的后缀,这样有一个很大的安全隐患,就是如果把ASP文件的后缀名改成.jpg或者.gif上传,或者图片里加入恶意代码再上传,那也会被程序认为是图片文件而照传不误。假如不怀好意的人上传个木马文件进去,虽然是后缀为jpg也许无法直接运行,但确确实实给服务器带来了很大的安全隐患。2008-03-03ASP中RecordSet Open和Connection.Execute一些区别与细节分享
这篇文章主要介绍了ASP中RecordSet Open和Connection.Execute一些区别与细节分享,需要的朋友可以参考下2020-08-08asp ADO GetString函数与用GetString来提高ASP的速度
没想到asp下有getstring这个东西,看样子不熟悉这块啊,以后考虑用这个,应该不错,另外还有getrows等,都是asp下提高性能不错的函数。2007-12-12ASP中用select case代替其他语言中的switch case, default用case else
这篇文章主要介绍了ASP中用select case代替其他语言中的switch case, default用case else ,需要的朋友可以参考下2015-11-11
最新评论