首页> 中国专利> 一种计算机使用期限限定方法及系统

一种计算机使用期限限定方法及系统

摘要

本发明提供一种计算机使用期限限定方法,该方法包括以下步骤:S11、获取实时时钟信息,并将当前实时时钟信息保存于当前系统日期变量中;S12、获取当前参考日期,判断当前系统日期与当前参考日期是否一致,如果为是,则将当前系统日期变量中的信息保存于参考日期变量中;如果为否,则执行步骤S14;S13、判断当前参考日期是否达到使用截止日期,如果为是,则进入锁定关机状态;S14、根据当前系统日期和当前参考日期计算出用户的修改量,更新使用截止日期;S15、将当前系统日期中的信息保存于参考日期变量中,返回步骤S13中,继续执行;本发明还提供一种计算机使用期限限定系统。本发明使得使用期限的限定更加有效和安全,不会对用户的体验效果造成影响。

著录项

  • 公开/公告号CN102999734A

    专利类型发明专利

  • 公开/公告日2013-03-27

    原文格式PDF

  • 申请/专利权人 比亚迪股份有限公司;

    申请/专利号CN201110277676.1

  • 发明设计人 王一凡;陈庆雷;严成芳;

    申请日2011-09-19

  • 分类号G06F21/71(20130101);

  • 代理机构

  • 代理人

  • 地址 518118 广东省深圳市坪山新区比亚迪路3009号

  • 入库时间 2024-02-19 18:23:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-30

    未缴年费专利权终止 IPC(主分类):G06F21/71 专利号:ZL2011102776761 申请日:20110919 授权公告日:20151202

    专利权的终止

  • 2015-12-02

    授权

    授权

  • 2013-08-07

    实质审查的生效 IPC(主分类):G06F21/71 申请日:20110919

    实质审查的生效

  • 2013-03-27

    公开

    公开

说明书

技术领域

本发明属于计算机领域,尤其涉及一种计算机使用期限限定方法及系统。

背景技术

BIOS(Basic Input and Output System,简称基本输入输出系统),是指集成在主板上的一个ROM芯片,其中保存了微机系统最重要的基本输入输出程序、系统信息设置、开机上电自检程序和系统启动自举程序等;它负责计算机开机时,对系统各项硬件进行初始化设置和测试,以保证系统能够正常工作。BIOS也是用于联系计算机硬件和软件程序之间的一组程序,该程序为计算机提供最低级及最直接的硬件控制。

在计算机开机时,BIOS首先会对计算机加电自检(Power On Self Test,简称POST),即检测刚接通电源的硬件部分是否正常,功能是否正常;接着初始化,包括创建中断向量、设置寄存器、对一些外部设备进行初始化和检测等;最后是引导DOS或者其他操作系统。同时,BIOS还具有程序服务程序和硬件中断处理能力,它的服务功能通过调用中断服务程序来实现。

EC(Embedded Controller,简称嵌入式控制器),它是一个16位单片机,内部本身也具有一定容量的闪存来存储EC的代码。EC在微机系统中的地位绝不次于南北桥,在系统开启的过程中,EC控制着绝大多数重要信号的时序。在笔记本电脑中,EC一直处于运行状态,无论是开机或者是关机状态,除非把电池和适配器完全卸除。在工作过程中,EC会每隔一定的时间轮询系统状态S0、S3、S4和S5,以做出相应的动作,配合用户需要使系统对应处于运行、睡眠、休眠和关机状态。

在操作系统驱动与EC之间,ACPI(Advanced Configuration and Power Interface Specification,简称高级配置和电源管理接口规范)中定义了标准的硬件和软件通信接口,EC通过发送SMI(System Management Interrupt,简称系统管理中断)和SCI(System Control Interrupt,简称系统控制中断),与操作系统进行交互。SMI是一种操作系统级的中断,但是处于底层,基本上不被用户发觉;而SCI是一种由硬件发起的软硬件配合完成的中断机制,对操作系统可见,用于通知上层AP(应用程序)做出相应的状态更改或硬件要求的处理。因为操作系统中包含有ACPI的相关驱动,所以EC上报操作系统ACPI事件只能通过SCI方式,即硬件使用SCI通知操作系统ACPI事件。

RTC(Real Time Clock,简称实时时钟),它能够保存当前的时间,在实时系统中RTC电路具有重要的作用。在计算机系统中,它用于更新计算机的时间;在计算机关机的状态下,RTC电路能够振荡计数,开机后系统时间以RTC时间来校准。

目前,某些供客户试用的便携式计算机的使用期限由厂商设定,具体设定使用期限的方法一般通过限制系统时间的修改权限。但是,此种方法可能会被用户破解,继而修改系统时间使得计时无效;同时,限制时间修改会限制用户的使用自由,影响用户的体验效果,甚至会被当作产品设计的缺陷而被反馈回来。

另外,使用期限的设定也可以使用第三方后台运行软件计时的方法,但是操作系统一旦更换软件计时也将无效;且后台软件一旦被发现,被用户卸载,将导致无法计时。

发明内容

本发明的目的是提供一种计算机使用期限限定方法,利用BIOS和EC作为载体完成计算机使用期限的限定,当使用期限一到计算机将无法开机,达到限制用户使用的目的,使得使用期限的限定更加有效和安全,同时也不会对用户的体验效果造成任何影响。

本发明的目的是通过以下技术方案实现的:

一种计算机使用期限限定方法,该方法包括以下步骤:

S11、获取实时时钟信息,并将当前实时时钟信息保存于当前系统日期变量中;

S12、获取当前参考日期,判断当前系统日期与当前参考日期是否一致,如果为是,则将当前系统日期变量中的信息保存于参考日期变量中;如果为否,则执行步骤S14;

S13、判断当前参考日期是否达到使用截止日期,如果为是,则进入锁定关机状态;

S14、根据当前系统日期和当前参考日期计算出用户的修改量,更新使用截止日期;

S15、将当前系统日期中的信息保存于参考日期变量中,返回步骤S13中,继续执行。

本发明还提供一种计算机使用期限限定系统,该系统包括:

第一保存单元,用于获取实时时钟信息,并将当前实时时钟信息保存于当前系统日期变量中;

第一判断单元,用于获取当前参考日期,判断当前系统日期与当前参考日期是否一致,如果为是,则将当前系统日期变量中的信息保存于参考日期变量中;如果为否,则执行计算更新单元;

第二判断单元,用于判断当前参考日期是否达到使用截止日期,如果为是,则进入锁定关机状态;

计算更新单元,用于根据当前系统日期和当前参考日期计算出用户的修改量,更新使用截止日期;

第二保存单元,用于将当前系统日期中的信息保存于参考日期变量中,返回第二判断单元中,继续执行。

本发明提供的计算机使用期限限定方法和系统,直接作用于底层的硬件上,即利用BIOS和EC作为载体完成计算机使用期限的限定,与上层的任何操作系统无关,当使用期限一到计算机将无法开机,达到限制用户使用的目的,使得使用期限的限定更加有效和安全;同时,本发明提供的方法和系统也不会限制用户可自由修改系统时间,即用户可自由修改系统时间,但是也能使其只能在限定的限期内可用,因此也不会对用户的体验效果造成任何影响。

附图说明

图1是本发明提供的计算机使用期限限定方法的流程示意图。

图2是本发明提供的计算机使用期限限定方法中使用截止日期月份的更新流程示意图。

图3是本发明提供的计算机使用期限限定方法中使用截止日期日数的更新流程示意图。

图4是本发明提供的计算机使用期限限定方法中使用截止日期月份和日数的更新流程示意图。

图5是本发明提供的计算机使用期限限定系统的结构示意图。

具体实施方式

为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参考图1所示,一种计算机使用期限限定方法,该方法包括以下步骤:

S11、获取实时时钟信息,并将当前实时时钟信息保存于当前系统日期变量中;

S12、获取当前参考日期,判断当前系统日期与当前参考日期是否一致,如果为是,则将当前系统日期变量中的信息保存于参考日期变量中;如果为否,则执行步骤S14;

S13、判断当前参考日期是否达到使用截止日期,如果为是,则进入锁定关机状态;

S14、根据当前系统日期和当前参考日期计算出用户的修改量,更新使用截止日期;

S15、将当前系统日期中的信息保存于参考日期变量中,返回步骤S13中,继续执行。

本发明提供的计算机使用期限限定方法,直接作用于底层的硬件上,即利用BIOS和EC作为载体完成计算机使用期限的限定,与上层的任何操作系统无关,当使用期限一到计算机将无法开机,达到限制用户使用的目的,使得使用期限的限定更加有效和安全;同时,本发明提供的方法也不会限制用户可自由修改系统时间,即用户可自由修改系统时间,但是也能使其只能在限定的限期内可用,因此也不会对用户的体验效果造成任何影响。

作为具体的实施方式,在步骤S11中包括在计算机开机进入正常工作状态后,根据预定时间间隔获取实时时钟信息。其中,所述预定时间间隔的设置可以依据RTC的振荡频率和试用者的开关机频率,但是我们确定预定时间间隔的原则是,既能体现限定程序修正截止时间跟随用户修改系统时间的实时性又能兼顾到程序执行时占用的系统资源尽量不会影响到系统的性能,这个取值其实从几秒钟到几个小时之间的任意取值都不会影响到期限限定程序的可靠性,只是如果间隔太小,就会执行频繁,自然会影响系统的性能,如果间隔太大,就会在实时性方面出现不足。因此,作为一种具体的实施例,所述预定时间间隔为5-10分钟,也就是每隔5-10分钟,通过本发明提供的计算机使用期限限定方法作用的底层硬件载体EC向BIOS发送一次SMI请求,以获取计算机系统的实时时钟信息;同时,可在EC的内存空间中开辟一段空间,用于存放本方法中涉及的使用截止日期、参考日期、当前系统日期以及用户修改日期记录表。当EC通过BIOS获取到实时时钟信息后,将当前的实时时钟信息保存于当前系统日期变量中。

在步骤S12中,所述参考日期的初始值的设定一般是用户拿到试用产品的日期,当整个计算机系统第一次上电开始运行以后,参考日期的时间要来自BIOS反馈回来的实时时钟(RTC),即保证初始的参考日期和系统日期一致。当第一次开机完成后执行步骤S12时,所述当前参考日期和当前系统日期是一致的,同时需要把当前系统日期变量中的信息保存于参考日期变量中,因为在第一次开机完成之前,试用者还不可能对系统日期进行修改,如果要修改,也只有在计算机进入正常工作状态以后。所以,在计算机进入正常工作状态以后,需要根据预定时间间隔获取实时时钟信息,以对系统日期进行监测。

在步骤S12中,需要特别说明的是,所述当前参考日期=前一参考日期+预定时间间隔。实际上,在比较当前参考日期和当前系统日期是否一致时,所述参考日期本身并没有随着系统日期自动的向前变化而变化,而只是通过所述公式当前参考日期=前一参考日期+预定时间间隔,将当前参考日期的信息自动地增加一个预定时间间隔,使其作为标准的系统日期,然后再与当前系统日期进行比较,以便得知当前系统日期有没有被用户在该预定时间间隔内修改。所以,在当前参考日期和当前系统日期是一致时,需要将当前系统日期变量中的信息保存于参考日期变量中,从而实现当前参考日期是否达到使用截止日期的有效判断。

因此,在步骤S12中,如果当前参考日期和当前系统日期一致,说明当前系统日期没有被用户在该预定时间间隔内修改,可以直接进入步骤S13中,与使用截止日期进行比对,以判断当前参考日期是否达到使用截止日期;如果当前参考日期和当前系统日期不一致,说明当前系统日期有被用户在该预定时间间隔内修改,因此需要对当前参考日期和使用截止日期进行重新修改,以建立新的基准参考点,维持试用期区间与用户修改前有一样的宽度;进而保证了系统的计时功能不被跳变,即试用期剩余使用区间不会跳变。

在步骤S13中,将当前系统日期变量中赋给参考日期变量中的信息读取,作为当前参考日期与当前使用截止日期比对,看试用日期是否已经达到或者超过规定的使用截止日期。如果当前参考日期与使用截止日期一致,说明试用日期已经达到,计算机系统则进入锁定模块,达到关机状态(S5);如果当前参考日期与使用截止日期不一致,说明试用日期还未达到,还允许用户继续使用,计算机系统则继续监控,即当比对结果不一致时,则需要返回步骤S11中,继续循环判断。

由前述步骤S12介绍可知,如果当前参考日期和当前系统日期不一致,说明当前系统日期有被用户在该预定时间间隔内修改,需要对当前参考日期和使用截止日期进行重新修改,由此进入到步骤S14中,其具体的修改情况包括:

请参考图2所示,作为一种具体实施方式,所述修改量包括修改月数,其主要适用于试用产品的日期为年月的形式,且根据用户修改日期记录表判断用户只对月修改,或者试用产品的日期虽然为年月日的形式,但是根据用户修改日期记录表判断用户也只对月修改的情形。具体地,根据所述修改月数更新使用截止日期具体包括以下步骤:

S141、根据修改月数=当前参考日期的月份-当前系统日期的月份,计算出用户的修改月数;由该计算公式可以看出,修改月数可能为正或负,因此,在对月份修改之前,需要判断修改月数是否>0。

S142、如果修改月数>0,则使用截止日期的月份=前一截止日期的月份-︱修改月数︱,来修改使用截止日期。例如,经过前述公式当前参考日期=前一系统日期+预定时间间隔,计算得到假设当前参考日期的月份是6月份,而当前系统日期的月份是5月份,根据修改月数=当前参考日期的月份-当前系统日期的月份,计算得到修改月数为6-5=1,说明系统日期是向前修改了,即用户将系统日期修改为已经过完了的日期或时间,回到了过去,试用者就通过这样的修改来延长试用时间。而本发明提供的计算机使用期限限定方法,就是防止试用者达到这样的目的,因此需要对使用截止日期进行相应的修改;同时,本方法允许使用者对系统日期进行修改,目的是为了增加用户的体验效果,但是,通过本发明提供的使用期限限定方法后,可以将用户对系统日期的修改反馈到对使用截止日期进行相应的修改。所以,根据使用截止日期的月份=前一截止日期的月份-︱修改月数︱,即将截止日期的月份也向前提前1个月;而为了防止在步骤S13中当前参考日期和使用截止日期比较的不对等,需要将当前参考日期的月份也要向前提前1个月,即是将当前系统日期中的信息保存于参考日期变量中,然后返回步骤S13中,继续执行判断。

S143、如果修改月数<0,则使用截止日期的月份=前一截止日期的月份+︱修改月数︱,来修改使用截止日期。例如,经过前述公式当前参考日期=前一系统日期+预定时间间隔,计算得到假设当前参考日期的月份是6月份,而当前系统日期的月份是7月份,根据修改月数=当前参考日期的月份-当前系统日期的月份,计算得到修改月数为6-7=-1,说明系统日期是向后修改了,即用户将系统日期修改为将来的日期或时间,试用者想通过这样的修改来提前结束试用时间。同理,根据使用截止日期的月份=前一截止日期的月份+︱修改月数︱,即将截止日期的月份也向后延迟1个月;而为了防止在步骤S13中当前参考日期和使用截止日期比较的不对等,需要将当前参考日期的月份也要向后延迟1个月,即是将当前系统日期中的信息保存于参考日期变量中,然后返回步骤S13中,继续执行判断。

请参考图3所示,作为另一种具体实施方式,所述修改量包括修改日数,其主要适用于试用产品的日期为年月日的形式,且根据用户修改日期记录表判断用户只对日修改的情形。具体地,根据所述修改日数更新使用截止日期具体包括以下步骤:

S144、根据修改日数=当前参考日期的日数-当前系统日期的日数,计算出用户的修改日数;由该计算公式可以看出,修改日数可能为正或负,因此,在对日数修改之前,需要判断修改日数是否>0。

S145、如果修改日数>0,则使用截止日期的日数=前一截止日期的日数-︱修改日数︱,来修改使用截止日期。例如,经过前述公式当前参考日期=前一系统日期+预定时间间隔,计算得到假设当前参考日期的日数是15日,而当前系统日期的日数是10日,根据修改日数=当前参考日期的日数-当前系统日期的日数,计算得到修改日数为15-10=5,说明系统日期是向前修改了,即用户将系统日期修改为已经过完了的日期或时间,回到了过去,试用者就通过这样的修改来延长试用时间。而本发明提供的计算机使用期限限定方法,就是防止试用者达到这样的目的,因此需要对使用截止日期进行相应的修改;同时,本方法允许使用者对系统日期进行修改,目的是为了增加用户的体验效果,但是,通过本发明提供的使用期限限定方法后,可以将用户对系统日期的修改反馈到对使用截止日期进行相应的修改。所以,根据使用截止日期的日数=前一截止日期的日数-︱修改日数︱,即将截止日期的日数也向前提前5日;而为了防止在步骤S13中当前参考日期和使用截止日期比较的不对等,需要将当前参考日期的日数也要向前提前5日,即是将当前系统日期中的信息保存于参考日期变量中,然后返回步骤S13中,继续执行判断。

S146、如果修改月数<0,则使用截止日期的日数=前一截止日期的日数+︱修改日数︱,来修改使用截止日期。例如,经过前述公式当前参考日期=前一系统日期+预定时间间隔,计算得到假设当前参考日期的日数是15日,而当前系统日期的日数是25日,根据修改日数=当前参考日期的日数-当前系统日期的日数,计算得到修改日数为15-25=-10,说明系统日期是向后修改了,即用户将系统日期修改为将来的日期或时间,试用者想通过这样的修改来提前结束试用时间。同理,根据使用截止日期的日数=前一截止日期的日数+︱修改日数︱,即将截止日期的日数也向后延迟10日;而为了防止在步骤S13中当前参考日期和使用截止日期比较的不对等,需要将当前参考日期的日数也要向后延迟10日,即是将当前系统日期中的信息保存于参考日期变量中,然后返回步骤S13中,继续执行判断。

请参考图4所示,作为又一种具体实施方式,所述修改量包括修改月数和日数,其主要适用于试用产品的日期为年月日的形式,且根据用户修改日期记录表判断用户既对月修改、又对日修改的情形。具体地,根据所述修改月数和日数更新使用截止日期具体包括以下步骤:

S141、根据修改月数=当前参考日期的月份-当前系统日期的月份,计算出用户的修改月数;由该计算公式可以看出,修改月份和日数可能为正或负,因此,在对月份和日数修改之前,需要判断修改月份和日数是否>0。

S142、如果修改月数>0,则使用截止日期的月份=前一截止日期的月份-︱修改月数︱,来修改使用截止日期。例如,经过前述公式当前参考日期=前一系统日期+预定时间间隔,计算得到假设当前参考日期的月份是6月份,而当前系统日期的月份是5月份,根据修改月数=当前参考日期的月份-当前系统日期的月份,计算得到修改月数为6-5=1,说明系统日期是向前修改了,即用户将系统日期修改为已经过完了的日期或时间,回到了过去,试用者就通过这样的修改来延长试用时间。而本发明提供的计算机使用期限限定方法,就是防止试用者达到这样的目的,因此需要对使用截止日期进行相应的修改;同时,本方法允许使用者对系统日期进行修改,目的是为了增加用户的体验效果,但是,通过本发明提供的使用期限限定方法后,可以将用户对系统日期的修改反馈到对使用截止日期进行相应的修改。所以,根据使用截止日期的月份=前一截止日期的月份-︱修改月数︱,即将截止日期的月份也向前提前1个月;而为了防止在步骤S13中当前参考日期和使用截止日期比较的不对等,需要将当前参考日期的月份也要向前提前1个月,即是将当前系统日期中的信息保存于参考日期变量中,然后返回步骤S13中,继续执行判断。

S143、如果修改月数<0,则使用截止日期的月份=前一截止日期的月份+︱修改月数︱,来修改使用截止日期。例如,经过前述公式当前参考日期=前一系统日期+预定时间间隔,计算得到假设当前参考日期的月份是6月份,而当前系统日期的月份是7月份,根据修改月数=当前参考日期的月份-当前系统日期的月份,计算得到修改月数为6-7=-1,说明系统日期是向后修改了,即用户将系统日期修改为将来的日期或时间,试用者想通过这样的修改来提前结束试用时间。同理,根据使用截止日期的月份=前一截止日期的月份+︱修改月数︱,即将截止日期的月份也向后延迟1个月;而为了防止在步骤S13中当前参考日期和使用截止日期比较的不对等,需要将当前参考日期的月份也要向后延迟1个月,即是将当前系统日期中的信息保存于参考日期变量中,然后返回步骤S13中,继续执行判断。

S144、根据修改日数=当前参考日期的日数-当前系统日期的日数,计算出用户的修改日数;由该计算公式可以看出,修改日数可能为正或负,因此,在对日数修改之前,需要判断修改日数是否>0。

S145、如果修改日数>0,则使用截止日期的日数=前一截止日期的日数-︱修改日数︱,来修改使用截止日期。例如,经过前述公式当前参考日期=前一系统日期+预定时间间隔,计算得到假设当前参考日期的日数是15日,而当前系统日期的日数是10日,根据修改日数=当前参考日期的日数-当前系统日期的日数,计算得到修改日数为15-10=5,说明系统日期是向前修改了,即用户将系统日期修改为已经过完了的日期或时间,回到了过去,试用者就通过这样的修改来延长试用时间。而本发明提供的计算机使用期限限定方法,就是防止试用者达到这样的目的,因此需要对使用截止日期进行相应的修改;同时,本方法允许使用者对系统日期进行修改,目的是为了增加用户的体验效果,但是,通过本发明提供的使用期限限定方法后,可以将用户对系统日期的修改反馈到对使用截止日期进行相应的修改。所以,根据使用截止日期的日数=前一截止日期的日数-︱修改日数︱,即将截止日期的日数也向前提前5日;而为了防止在步骤S13中当前参考日期和使用截止日期比较的不对等,需要将当前参考日期的日数也要向前提前5日,即是将当前系统日期中的信息保存于参考日期变量中,然后返回步骤S13中,继续执行判断。

S146、如果修改月数<0,则使用截止日期的日数=前一截止日期的日数+︱修改日数︱,来修改使用截止日期。例如,经过前述公式当前参考日期=前一系统日期+预定时间间隔,计算得到假设当前参考日期的日数是15日,而当前系统日期的日数是25日,根据修改日数=当前参考日期的日数-当前系统日期的日数,计算得到修改日数为15-25=-10,说明系统日期是向后修改了,即用户将系统日期修改为将来的日期或时间,试用者想通过这样的修改来提前结束试用时间。同理,根据使用截止日期的日数=前一截止日期的日数+︱修改日数︱,即将截止日期的日数也向后延迟10日;而为了防止在步骤S13中当前参考日期和使用截止日期比较的不对等,需要将当前参考日期的日数也要向后延迟10日,即是将当前系统日期中的信息保存于参考日期变量中,然后返回步骤S13中,继续执行判断。

作为具体的实施方式,使用产品的用户不可能让计算机一直处于正常工作状态,需要关闭计算机。由于现有试用产品的使用期限限定一般不会因为用户关机而停止计时,所以,当再次打开计算机时,其试用日期有可能会达到使用截止日期的期限。因此,本发明提供了在步骤S11中包括,在计算机开机上电自检开始时,获取实时时钟信息;因为在计算机上电自检的过程中,用户可能也会对计算机系统日期进行修改,因此需要对实时时钟信息进行读取,以判断对系统日期信息是否有修改。其具体的判断过程根据情形选择前述图2、图3和图4所示的流程,在此不再赘述;但是,由于计算机开机的过程比较短,一般比本发明设置的预定时间间隔短,因此与正常工作状态相比,当比对结果不一致时,少了需要返回步骤S11中,继续循环判断的步骤,即在开机的过程中,一般只获取一次实时时钟信息进行判断即可。

进一步,在计算机开机上电自检之前包括,检测参考日期与使用截止日期是否相同,如果为是,则进入锁定关机状态。因为,在计算机开机之前,有可能自然地到了使用截止日期,当EC检测到截止条件已经满足,就不会继续后续的开机过程了。

作为具体的实施方式,为了防止用户在关机前的预定时间间隔内修改系统时间,导致BIOS不能及时通知EC该事件的发生,本实施提出了在关机前BIOS需要将实时时钟信息传送给EC,让EC对系统日期信息是否有修改,其具体的判断过程根据情形选择前述图2、图3和图4所示的流程,在此不再赘述。在计算机关机时,BIOS在PTS(Prepare To Sleep,ACPI规范里面定义的一个方法(Method(_PTS)),操作系统进入任何一个S(Sx)状态都会进入并执行一次)过程中能检测到系统即将进入关机(S5)状态,一旦BIOS检测到电脑进入S5状态,BIOS即抓取RTC时间回复给EC。在此,本领域的技术人员需要明白,虽然计算机已经关闭,但是关机前的最后一次判断还是会在计算机的后台运行,直至处理完毕。处理完毕后,计算机即进入关机状态,当参考日期与使用截止日期不相同时,EC从此处获得一个时间基准点,进入无干扰的试用期时间消耗阶段,直至下次开机。具体在关机的状态下,EC自己会做时间的计算,不用再询问BIOS当前的实时时钟信息,也不会有用户修改时间的干扰,因为关机以后用户无法修改系统时间。

请参考图5所示,本发明还提供一种计算机使用期限限定系统,该系统包括:

第一保存单元101,用于获取实时时钟信息,并将当前实时时钟信息保存于当前系统日期变量中;

第一判断单元102,用于获取当前参考日期,判断当前系统日期与当前参考日期是否一致,如果为是,则将当前系统日期变量中的信息保存于参考日期变量中;如果为否,则执行计算更新单元;

第二判断单元103,用于判断当前参考日期是否达到使用截止日期,如果为是,则进入锁定关机状态;

计算更新单元104,用于根据当前系统日期和当前参考日期计算出用户的修改量,更新使用截止日期;

第二保存单元105,用于将当前系统日期中的信息保存于参考日期变量中,返回第二判断单元中,继续执行。

本发明提供的计算机使用期限限定系统,直接作用于底层的硬件上,即利用BIOS和EC作为载体完成计算机使用期限的限定,与上层的任何操作系统无关,当使用期限一到计算机将无法开机,达到限制用户使用的目的,使得使用期限的限定更加有效和安全;同时,本发明提供的系统也不会限制用户可自由修改系统时间,即用户可自由修改系统时间,但是也能使其只能在限定的限期内可用,因此也不会对用户的体验效果造成任何影响。

作为具体的实施方式,在第一保存单元101中包括在计算机开机进入正常工作状态后,根据预定时间间隔获取实时时钟信息。其中,所述预定时间间隔的设置可以依据RTC的振荡频率和试用者的开关机频率,但是我们确定预定时间间隔的原则是,既能体现限定程序修正截止时间跟随用户修改系统时间的实时性又能兼顾到程序执行时占用的系统资源尽量不会影响到系统的性能,这个取值其实从几秒钟到几个小时之间的任意取值都不会影响到期限限定程序的可靠性,只是如果间隔太小,就会执行频繁,自然会影响系统的性能,如果间隔太大,就会在实时性方面出现不足。因此,作为一种具体的实施例,所述预定时间间隔为5-10分钟,也就是每隔5-10分钟,通过本发明提供的计算机使用期限限定系统作用的底层硬件载体EC向BIOS发送一次SMI请求,以获取计算机系统的实时时钟信息;同时,可在EC的内存空间中开辟一段空间,用于存放本系统中涉及的使用截止日期、参考日期、当前系统日期以及用户修改日期记录表。当EC通过BIOS获取到实时时钟信息后,将当前的实时时钟信息保存于当前系统日期变量中。

在第一判断单元102中,所述参考日期的初始值的设定一般是用户拿到试用产品的日期,当整个计算机系统第一次上电开始运行以后,参考日期的时间要来自BIOS反馈回来的实时时钟(RTC),即保证初始的参考日期和系统日期一致。当第一次开机完成后执行第一判断单元102时,所述当前参考日期和当前系统日期是一致的,同时需要把当前系统日期变量中的信息保存于参考日期变量中,因为在第一次开机完成之前,试用者还不可能对系统日期进行修改,如果要修改,也只有在计算机进入正常工作状态以后。所以,在计算机进入正常工作状态以后,需要根据预定时间间隔获取实时时钟信息,以对系统日期进行监测。

在第一判断单元102中,需要特别说明的是,所述当前参考日期=前一参考日期+预定时间间隔。实际上,在比较当前参考日期和当前系统日期是否一致时,所述参考日期本身并没有随着系统日期自动的向前变化而变化,而只是通过所述公式当前参考日期=前一参考日期+预定时间间隔,将当前参考日期的信息自动地增加一个预定时间间隔,使其作为标准的系统日期,然后再与当前系统日期进行比较,以便得知当前系统日期有没有被用户在该预定时间间隔内修改。所以,在当前参考日期和当前系统日期是一致时,需要将当前系统日期变量中的信息保存于参考日期变量中,从而实现当前参考日期是否达到使用截止日期的有效判断。

因此,在第一判断单元102中,如果当前参考日期和当前系统日期一致,说明当前系统日期没有被用户在该预定时间间隔内修改,可以直接进入第二判断单元103中,与使用截止日期进行比对,以判断当前参考日期是否达到使用截止日期;如果当前参考日期和当前系统日期不一致,说明当前系统日期有被用户在该预定时间间隔内修改,因此需要对当前参考日期和使用截止日期进行重新修改,以建立新的基准参考点,维持试用期区间与用户修改前有一样的宽度;进而保证了系统的计时功能不被跳变,即试用期剩余使用区间不会跳变。

在第二判断单元103中,将当前系统日期变量中赋给参考日期变量中的信息读取,作为当前参考日期与当前使用截止日期比对,看试用日期是否已经达到或者超过规定的使用截止日期。如果当前参考日期与使用截止日期一致,说明试用日期已经达到,计算机系统则进入锁定模块,达到关机状态(S5);如果当前参考日期与使用截止日期不一致,说明试用日期还未达到,还允许用户继续使用,计算机系统则继续监控,即当比对结果不一致时,则需要返回第一保存单元101中,继续循环判断。

由前述第一判断单元102介绍可知,如果当前参考日期和当前系统日期不一致,说明当前系统日期有被用户在该预定时间间隔内修改,需要对当前参考日期和使用截止日期进行重新修改,由此进入到计算更新单元104中,其具体的修改情况包括:

作为一种具体实施方式,所述修改量包括修改月数,其主要适用于试用产品的日期为年月的形式,且根据用户修改日期记录表判断用户只对月修改,或者试用产品的日期虽然为年月日的形式,但是根据用户修改日期记录表判断用户也只对月修改的情形。具体地,根据所述修改月数更新使用截止日期具体包括:

修改月数计算单元,用于根据修改月数=当前参考日期的月份-当前系统日期的月份,计算出用户的修改月数;由该计算公式可以看出,修改月数可能为正或负,因此,在对月份修改之前,需要判断修改月数是否>0。

第一修改月数更新单元,用于如果修改月数>0,则使用截止日期的月份=前一截止日期的月份-︱修改月数︱,来修改使用截止日期。例如,经过前述公式当前参考日期=前一系统日期+预定时间间隔,计算得到假设当前参考日期的月份是6月份,而当前系统日期的月份是5月份,根据修改月数=当前参考日期的月份-当前系统日期的月份,计算得到修改月数为6-5=1,说明系统日期是向前修改了,即用户将系统日期修改为已经过完了的日期或时间,回到了过去,试用者就通过这样的修改来延长试用时间。而本发明提供的计算机使用期限限定系统,就是防止试用者达到这样的目的,因此需要对使用截止日期进行相应的修改;同时,本系统允许使用者对系统日期进行修改,目的是为了增加用户的体验效果,但是,通过本发明提供的使用期限限定系统后,可以将用户对系统日期的修改反馈到对使用截止日期进行相应的修改。所以,根据使用截止日期的月份=前一截止日期的月份-︱修改月数︱,即将截止日期的月份也向前提前1个月;而为了防止在第二判断单元103中当前参考日期和使用截止日期比较的不对等,需要将当前参考日期的月份也要向前提前1个月,即是将当前系统日期中的信息保存于参考日期变量中,然后返回第二判断单元103中,继续执行判断。

第二修改月数更新单元,用于如果修改月数<0,则使用截止日期的月份=前一截止日期的月份+︱修改月数︱,来修改使用截止日期。例如,经过前述公式当前参考日期=前一系统日期+预定时间间隔,计算得到假设当前参考日期的月份是6月份,而当前系统日期的月份是7月份,根据修改月数=当前参考日期的月份-当前系统日期的月份,计算得到修改月数为6-7=-1,说明系统日期是向后修改了,即用户将系统日期修改为将来的日期或时间,试用者想通过这样的修改来提前结束试用时间。同理,根据使用截止日期的月份=前一截止日期的月份+︱修改月数︱,即将截止日期的月份也向后延迟1个月;而为了防止在第二判断单元103中当前参考日期和使用截止日期比较的不对等,需要将当前参考日期的月份也要向后延迟1个月,即是将当前系统日期中的信息保存于参考日期变量中,然后返回第二判断单元103中,继续执行判断。

作为另一种具体实施方式,所述修改量包括修改日数,其主要适用于试用产品的日期为年月日的形式,且根据用户修改日期记录表判断用户只对日修改的情形。具体地,根据所述修改日数更新使用截止日期具体包括:

修改日数计算单元,用于根据修改日数=当前参考日期的日数-当前系统日期的日数,计算出用户的修改日数;由该计算公式可以看出,修改日数可能为正或负,因此,在对日数修改之前,需要判断修改日数是否>0。

第一修改日数更新单元,用于如果修改日数>0,则使用截止日期的日数=前一截止日期的日数-︱修改日数︱,来修改使用截止日期。例如,经过前述公式当前参考日期=前一系统日期+预定时间间隔,计算得到假设当前参考日期的日数是15日,而当前系统日期的日数是10日,根据修改日数=当前参考日期的日数-当前系统日期的日数,计算得到修改日数为15-10=5,说明系统日期是向前修改了,即用户将系统日期修改为已经过完了的日期或时间,回到了过去,试用者就通过这样的修改来延长试用时间。而本发明提供的计算机使用期限限定系统,就是防止试用者达到这样的目的,因此需要对使用截止日期进行相应的修改;同时,本系统允许使用者对系统日期进行修改,目的是为了增加用户的体验效果,但是,通过本发明提供的使用期限限定系统后,可以将用户对系统日期的修改反馈到对使用截止日期进行相应的修改。所以,根据使用截止日期的日数=前一截止日期的日数-︱修改日数︱,即将截止日期的日数也向前提前5日;而为了防止在步骤S13中当前参考日期和使用截止日期比较的不对等,需要将当前参考日期的日数也要向前提前5日,即是将当前系统日期中的信息保存于参考日期变量中,然后返回第二判断单元103中,继续执行判断。

第二修改日数更新单元,用于如果修改月数<0,则使用截止日期的日数=前一截止日期的日数+︱修改日数︱,来修改使用截止日期。例如,经过前述公式当前参考日期=前一系统日期+预定时间间隔,计算得到假设当前参考日期的日数是15日,而当前系统日期的日数是25日,根据修改日数=当前参考日期的日数-当前系统日期的日数,计算得到修改日数为15-25=-10,说明系统日期是向后修改了,即用户将系统日期修改为将来的日期或时间,试用者想通过这样的修改来提前结束试用时间。同理,根据使用截止日期的日数=前一截止日期的日数+︱修改日数︱,即将截止日期的日数也向后延迟10日;而为了防止在第二判断单元103中当前参考日期和使用截止日期比较的不对等,需要将当前参考日期的日数也要向后延迟10日,即是将当前系统日期中的信息保存于参考日期变量中,然后返回第二判断单元103中,继续执行判断。

作为又一种具体实施方式,所述修改量包括修改月数和日数,其主要适用于试用产品的日期为年月日的形式,且根据用户修改日期记录表判断用户既对月修改、又对日修改的情形。具体地,根据所述修改月数和日数更新使用截止日期具体包括:

修改月数计算单元,用于根据修改月数=当前参考日期的月份-当前系统日期的月份,计算出用户的修改月数;由该计算公式可以看出,修改月份和日数可能为正或负,因此,在对月份和日数修改之前,需要判断修改月份和日数是否>0。

第一修改月数更新单元,用于如果修改月数>0,则使用截止日期的月份=前一截止日期的月份-︱修改月数︱,来修改使用截止日期。例如,经过前述公式当前参考日期=前一系统日期+预定时间间隔,计算得到假设当前参考日期的月份是6月份,而当前系统日期的月份是5月份,根据修改月数=当前参考日期的月份-当前系统日期的月份,计算得到修改月数为6-5=1,说明系统日期是向前修改了,即用户将系统日期修改为已经过完了的日期或时间,回到了过去,试用者就通过这样的修改来延长试用时间。而本发明提供的计算机使用期限限定系统,就是防止试用者达到这样的目的,因此需要对使用截止日期进行相应的修改;同时,本系统允许使用者对系统日期进行修改,目的是为了增加用户的体验效果,但是,通过本发明提供的使用期限限定系统后,可以将用户对系统日期的修改反馈到对使用截止日期进行相应的修改。所以,根据使用截止日期的月份=前一截止日期的月份-︱修改月数︱,即将截止日期的月份也向前提前1个月;而为了防止在第二判断单元103中当前参考日期和使用截止日期比较的不对等,需要将当前参考日期的月份也要向前提前1个月,即是将当前系统日期中的信息保存于参考日期变量中,然后返回第二判断单元103中,继续执行判断。

第二修改月数更新单元,用于如果修改月数<0,则使用截止日期的月份=前一截止日期的月份+︱修改月数︱,来修改使用截止日期。例如,经过前述公式当前参考日期=前一系统日期+预定时间间隔,计算得到假设当前参考日期的月份是6月份,而当前系统日期的月份是7月份,根据修改月数=当前参考日期的月份-当前系统日期的月份,计算得到修改月数为6-7=-1,说明系统日期是向后修改了,即用户将系统日期修改为将来的日期或时间,试用者想通过这样的修改来提前结束试用时间。同理,根据使用截止日期的月份=前一截止日期的月份+︱修改月数︱,即将截止日期的月份也向后延迟1个月;而为了防止在第二判断单元103中当前参考日期和使用截止日期比较的不对等,需要将当前参考日期的月份也要向后延迟1个月,即是将当前系统日期中的信息保存于参考日期变量中,然后返回第二判断单元103中,继续执行判断。

修改日数计算单元,用于根据修改日数=当前参考日期的日数-当前系统日期的日数,计算出用户的修改日数;由该计算公式可以看出,修改日数可能为正或负,因此,在对日数修改之前,需要判断修改日数是否>0。

第一修改日数更新单元,用于如果修改日数>0,则使用截止日期的日数=前一截止日期的日数-︱修改日数︱,来修改使用截止日期。例如,经过前述公式当前参考日期=前一系统日期+预定时间间隔,计算得到假设当前参考日期的日数是15日,而当前系统日期的日数是10日,根据修改日数=当前参考日期的日数-当前系统日期的日数,计算得到修改日数为15-10=5,说明系统日期是向前修改了,即用户将系统日期修改为已经过完了的日期或时间,回到了过去,试用者就通过这样的修改来延长试用时间。而本发明提供的计算机使用期限限定系统,就是防止试用者达到这样的目的,因此需要对使用截止日期进行相应的修改;同时,本系统允许使用者对系统日期进行修改,目的是为了增加用户的体验效果,但是,通过本发明提供的使用期限限定系统后,可以将用户对系统日期的修改反馈到对使用截止日期进行相应的修改。所以,根据使用截止日期的日数=前一截止日期的日数-︱修改日数︱,即将截止日期的日数也向前提前5日;而为了防止在第二判断单元103中当前参考日期和使用截止日期比较的不对等,需要将当前参考日期的日数也要向前提前5日,即是将当前系统日期中的信息保存于参考日期变量中,然后返回第二判断单元103中,继续执行判断。

第二修改日数更新单元,用于如果修改月数<0,则使用截止日期的日数=前一截止日期的日数+︱修改日数︱,来修改使用截止日期。例如,经过前述公式当前参考日期=前一系统日期+预定时间间隔,计算得到假设当前参考日期的日数是15日,而当前系统日期的日数是25日,根据修改日数=当前参考日期的日数-当前系统日期的日数,计算得到修改日数为15-25=-10,说明系统日期是向后修改了,即用户将系统日期修改为将来的日期或时间,试用者想通过这样的修改来提前结束试用时间。同理,根据使用截止日期的日数=前一截止日期的日数+︱修改日数︱,即将截止日期的日数也向后延迟10日;而为了防止在第二判断单元103中当前参考日期和使用截止日期比较的不对等,需要将当前参考日期的日数也要向后延迟10日,即是将当前系统日期中的信息保存于参考日期变量中,然后返回第二判断单元103中,继续执行判断。

作为具体的实施方式,使用产品的用户不可能让计算机一直处于正常工作状态,需要关闭计算机。由于现有试用产品的使用期限限定一般不会因为用户关机而停止计时,所以,当再次打开计算机时,其试用日期有可能会达到使用截止日期的期限。因此,本发明提供了在第一保存单元101中包括,在计算机开机上电自检开始时,获取实时时钟信息;因为在计算机上电自检的过程中,用户可能也会对计算机系统日期进行修改,因此需要对实时时钟信息进行读取,以判断对系统日期信息是否有修改。其具体的判断过程根据情形选择前述图2、图3和图4所示的流程,在此不再赘述;但是,由于计算机开机的过程比较短,一般比本发明设置的预定时间间隔短,因此与正常工作状态相比,当比对结果不一致时,少了需要返回第一保存单元101中,继续循环判断的步骤,即在开机的过程中,一般只获取一次实时时钟信息进行判断即可。

进一步,在计算机开机上电自检之前包括,检测参考日期与使用截止日期是否相同,如果为是,则进入锁定关机状态。因为,在计算机开机之前,有可能自然地到了使用截止日期,当EC检测到截止条件已经满足,就不会继续后续的开机过程了。

作为具体的实施方式,为了防止用户在关机前的预定时间间隔内修改系统时间,导致BIOS不能及时通知EC该事件的发生,本实施提出了在关机前BIOS需要将实时时钟信息传送给EC,让EC对系统日期信息是否有修改,其具体的判断过程根据情形选择前述图2、图3和图4所示的流程,在此不再赘述。在计算机关机时,BIOS在PTS(Prepare To Sleep,ACPI规范里面定义的一个方法(Method(_PTS)),操作系统进入任何一个S(Sx)状态都会进入并执行一次)过程中能检测到系统即将进入关机(S5)状态,一旦BIOS检测到电脑进入S5状态,BIOS即抓取RTC时间回复给EC。在此,本领域的技术人员需要明白,虽然计算机已经关闭,但是关机前的最后一次判断还是会在计算机的后台运行,直至处理完毕。处理完毕后,计算机即进入关机状态,当参考日期与使用截止日期不相同时,EC从此处获得一个时间基准点,进入无干扰的试用期时间消耗阶段,直至下次开机。具体在关机的状态下,EC自己会做时间的计算,不用再询问BIOS当前的实时时钟信息,也不会有用户修改时间的干扰,因为关机以后用户无法修改系统时间。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号