第一个ASP组件:设置服务器日期时间组件

服务器

网络之门
     
  在进入我们需习的第一个组件之前,小虎首先得说明一下,由于小虎的水平有限,可能在下面的这些说明过程中存在
不少错误,希望大家提出指证,在这里我希望能与大家分享一下ASP的学习经验,小虎的这个网站推耸的是原创精神,很多
东西都是DIY,因此程序编写过程中也会染上小虎本身不良的编程习惯。而且整个教学网站也只有小虎一个维护,因此技术
上肯定存在不少问题,望大家谅解。
  ASP组件为我们的ASP编程提供了强大的扩展功能,比如我们需要在服务器中启动一个应用程序,设置服务器的时间,
访问操作系统内部信息等等,光靠ASP是干不了的。很大部分都需要借助自己开发的ASP组件才能实现,ASP本身为我们提供
了几个非常有用的组件,ADO数据库访问组件,文件输入输出组件,广告轮换组件等等。但有很多时侯我们需要的一些特殊
的功能。
  首先,小虎用自己最熟悉的VB来做这个组件,大伙先在自己的计算鸡上装上个D版的VB吧,版本没要求,但小虎是用
VB6的。开始第一步怎么样呢?

(一)运行VB6,系统弹出了一个“新建工程”的对话框。选择ActiveX Dll
   接着可以在工程管理器上看见“工程一”和所属的一个类“ Class1”,让我们想先帮他们改上一个好听的名字吧,
要不你在ASP中使用这个自制组件时,难道用
   set obj=server.createobject("工程一.class1")
   这么难听的名字吗?快去把它改改吧。我们把工程一改名为:systimeset,而class1改为:timeset。这样好多了
吧?好了,开始为类timeset添加代码了,先想一想,vb6本身好象没有能设定系统时间和日期的函数吧(小虎不记得有没
有了)那么怎么办呢?别着急,大家听过WIN32API函数吗?这是微软的windows系统级函数。提供有丰富的操作系统功能,
别说改日期,改时间,就是让你的window重起动也可以。小虎打开了厚厚的WIN32API函数大全,终于找到了SetSystemTime
这个函数,win32API原本是设计为C++程序员使用的,在VB里调用它得先声名,好在微软还想得挺周到,VB40以上的版本,
都带有API文本浏览器,我们运行它,它就在开始菜单的VB程序组里,运行后弹出了个框框,从文件菜单中选择加载文本文
件。选择WIN32API.TXT,API类型中选择声明,然后在那个可用项中找到SetSystemTime这个东西,双击它,一段代码就出
现在选定项里,接着还要选东西,在API类型中选择类型,找到SystemTime这个类型,同样把它双击,好了按一下复制,把
刚才选择的东西都贴到粘贴板中。关了这个API浏览器,我们的东西算是够用了。
   现在编写VB代码,双击timeset类,在类里加入下面的代码。
Option Explicit
Private SystemTime As SystemTime
'这些就是从粘贴板里来的,我们看看systemtime这个类型,也就是差不多C++中的结构体,光看看他那八项就知道是一些
年,月,日,小时,分种。。。等的八大项,现在只要为这八大项赋上值再调用SetSystemTime这个WIN32API函数,瞧瞧你
的服务器吧,日期时间都给改掉了,如果你用win98来做服务器,试把它调到26号看看,有没有CIH,^0^,由于这是个例
子,因此大部分值我都采用固定的值,而不是从ASP中传过来的值,从ASP中传过来只有HOUR,和MINUTE,小时和分钟,如
果你们有兴趣加上其它几个的话,那么就修改一下程序吧。
Private Declare 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

'声明timeset类的公有属性,比如当你用set obj=server.createobject("systimeset.timeset")创建了一个服务器对象
时,需要对timeset进行赋值,也就是指定要设置的系统时间吧,那么就得声明下面这写timeset的公有属性,我这有只声
明了HOUR和Minute,也就是只提供更改小时和分钟,如过你要改其它的几个,那么自己弄上去吧。
Public Property Get Hour() As Integer
Hour = m_Hour
End Property
Public Property Let Hour(tmp_Hour As Integer)
m_Hour = tmp_Hour
End Property
Public Property Get Minute() As Integer
Minute = m_Minute
End Property
Public Property Let Minute(tmp_Minute As Integer)
m_Minute = tmp_Minute
End Property
有了HOUR和Minute属性,那么你在ASP中创建了服务器对象obj时,就可以通过

obj.Hour=10
obj.Minute=10着样来对它赋值,意思就是你打算把时间设为10:10分。

好了,最后就是公有方法了,我们声命一个setup()的方法,只要一调用它,就马上更改时间。其它几个参数我固定使用常
量,大家可以改一下,这个不用我说了吧?应改会有体会了,总之不能空着,不然调用WIN32API函数会失败返回0的,如过
是1就成功了。我这里设为1999-10-1日,我们的50周年国庆。

Public Function setup() As Integer
SystemTime.wDay = 1
SystemTime.wDayOfWeek = 1
SystemTime.wMilliseconds = 0
SystemTime.wMonth = 10
SystemTime.wSecond = 0
SystemTime.wYear = 1999
SystemTime.wHour =Hour
SystemTime.wMinute =Minute
setup = SetSystemTime(SystemTime)

End Function

  最后保存工程,并编译DLL,编译后这个组件会由VB6自动注册的,所以我们可以马上在ASP 中调用了。我们马上写一
个简单的ASP程序。
*test.asp
<% @language="vbscript" %>
<%
response.Expires=0
set obj=server.createobject("systimeset.timeset")
obj.Hour=10
obj.Minute=10
result=obj.setup

if result=1 then

response.write "系统时间已成功修改"

else

response.write "系统时间修改失败"

endif

set obj=Nothing

%>

  累死我了,一口气做这个组件和打了这么多字,具体的ASP组件注册等问题下次我会对大家解说。我把ASP组件源程序
先打包,那么大家就不用敲了,直接拿去编译就行了,由于工程是vb6做的,所以需要VB6才能打开编译。如果大家觉得本
站办的挺好的话,请为小虎的网站做个推荐和友情连接吧,希望通过交流学习,我们能共同进步。如转载小虎的文章,请
注明出处,必竟小虎是花了不少时间来敲的。~0~
以上组件的运行环境为:Pwin98+Pws4

时间: 2024-12-29 00:36:53

第一个ASP组件:设置服务器日期时间组件的相关文章

asp中设置session过期时间方法总结

 如果程序中没有设置session的过期时间,那么session过期时间就会按照IIS设置的过期时间来执行,IIS中session默认过期时间为20分钟,IIS中session时间可以更改   如果程序中设置了session过期时间,那么,即使你将IIS中session时间设置100小时也没有用,因为程序会首先按照程序中设置,只有程序没设置的情况下才会按照IIS设置的 时间设置要放在前面 例如  代码如下   Session.Timeout=30 'SEESION有效时间为30分钟  Sessi

asp中设置session过期时间方法总结_应用技巧

如果程序中没有设置session的过期时间,那么session过期时间就会按照IIS设置的过期时间来执行,IIS中session默认过期时间为20分钟,IIS中session时间可以更改 时间设置要放在前面 例如 复制代码 代码如下: Session.Timeout=30 'SEESION有效时间为30分钟 Session("ID")=Rs("id") Session("Name")=Rs("Name") Session(&q

asp.net sql server 日期时间格式CONVERT转换

asp教程.net sql server 日期时间格式convert转换 在客户端可以用tostring()方法进行格式化:   datetime.now.tostring("d")     返回标准的日期格式.   datetime.now.tostring("yy年mm月dd日")  返回中文日期格式:09年04月13日   datetime.now.tostring("hh:mm")      返回时间 :     5:20 参数可以随意组

asp中的一些日期时间函数

本文提供vbscript时间函数的概要介绍,可应对一般应用,具体特殊需求可进一步搜索. date() 获取日期,格式:2004-2-28 time() 获取时间,格式:22:24:59 now() 获取日期和时间 格式: 2005-5-2 22:37:30 d=date() 获取年份:year(d) 获取月份:month(d) 获取日子:day(d) 获取星期几:weekday(d) t=time() 获取小时:hour(t) 获取分钟:minute(t) 获取秒数:second(t) 日期相加

ASP.NET设置Session过期时间

  1.本文所说Session过期时间的四种设置方式均在Widnows2003系统下设置的,具体步骤:开始--〉管理工具--〉Internet信息服务(IIS)管理器--〉网站--〉默认网站- -〉右键"属性"--〉主目录--〉配置--〉选项--〉启用会话状态--〉会话超时(在这儿设置你要的超时时间,单位分钟).确定即可. 2.ASP.NET应用程序中Session过期时间的设置 在ASP.NET这样的Web应用中,Session是用来保存用户状态的常用手段,不过由于服务器内存空间是有

Yii2超好用的日期和时间组件(值得收藏)_php实例

日期组件,时间组件在平时开发中是必不可少的.今天我们就来谈谈在yii2中的超好用的时间组件,也省的大家各种找js插件了. 分享之前我们先预览下效果,看看到底怎么个好用法. 当然啦,好用不好用在于自我的感觉,光看上面的图片是感受不到的.再告诉你个好消息,这两款插件已经跟yii2整合了,使用起来也是灰常的简单哦. 关于日期组件跟时间组件,前者是date('Y-m-d')类型,后者是date('Y-m-d H:i:s')类型,自然不用多说. 我们先来看看时间组件扩展 既然是扩展组建,第一步当然是安装.

js日期时间选择器bootstrap

使用的是开源的架构 可以git clone git://github.com/smalot/bootstrap-datetimepicker.git 截图 十年视图 年视图 月视图 日视图* 小时视图 * Day view w/ meridian * Hour view w/ meridian * (*) Added views to select the time part. 依赖 需要bootstrap的下拉菜单组件 (dropdowns.less) 的某些样式,还有bootstrap的sp

创建定制的ASP.NET AJAX非可视化客户端组件

作者基于对微软ASP.NET AJAX 1.0框架的研究,本文继续讨论如何创建一个由基类Sys.Component派生的ASP.NET AJAX非可视化客户端组件,并展示它在Web页面中的用法. 一.简介 在本文中,我们将共同讨论如何创建一个由基类Sys.Component派生的ASP.NET AJAX非可视化客户端组件,并将展示它在Web页面中的用法. 具体说来,你将学习如何实现: ◆使用prototype设计模式以JavaScript定义一个非可视化组件类. ◆把一个非可视化组件注册为一个由

Javascript日期级联组件代码分析及demo

最近研究下JS日期级联效果 感觉还不错,然后看了下kissy也正好有这么一个 组件,也看了下源码,写的还不错,通过google最早是在2011年 淘宝的虎牙(花 名)用原审JS写了一个(貌似据说是从YUI那边重构下的) 具体的可以看他的 博 客园 , 感觉kissy组件源码 思路也是和YUI类似 所以我今天的基本思路也和他们 的一样 只是通过自己分析下及用自己的方式包装下. 基本原理 1.传参中有 '年份下拉框dom节点', '月份下拉框dom节点', '天数下拉框dom 节点', "开始日期&