找回密码
 加入
搜索
查看: 2215|回复: 14

关于源码区时间限制的程序提个问题。

 火.. [复制链接]
发表于 2010-2-5 22:13:23 | 显示全部楼层 |阅读模式
本帖最后由 laojikelly 于 2010-2-5 23:07 编辑
$Y = @YEAR; "年"

$M = @MON ; "月"

$D = @MDAY ;天属本月的第几天,值的范围是 01 到 31

$Now = $Y & $M & $D ;当前日期 格式例如 20100129

$Birth = "20080129" ;指定程序出生日期 格式例如 20100129

$Death = "20090129" ;指定程序死亡日期 格式例如 20121001

if Number($Now) <= $Birth And Number($Now) >= $Death Then;如果程序运行的日期超过了设定的日期 则不能运行

        MsgBox(0, "警告", "程序死亡!!")

        Exit

Else

        MsgBox(0, "恭喜", "程序健康!!")

EndIf
这段东西我修改成这样,为什么还是提示“程序健康呢”?是我机器问题吗?
我机器的时间是2010年了。

还有
dim $deathdate="2010-02-14",$now=@YEAR&"-"&@MON& "-" & @MDAY
$result = StringCompare($deathdate,$now,1)
If $result<>0 Then
        MsgBox(16,"您的试用期已过!","请购买正版软件!谨防盗版使用!",3)
        Exit
        EndIf 
        ;软件主体
        MsgBox(16,"试用期!","请购买正版软件!",3)
为什么2010.2.14过期的东西居然提示我“请购买正版软件!谨防盗版使用!”这是何解?大家运行都正确吗?为什么在我的机器上面会失效?我重新安装过AU3问题照样的,在别的机器上面用不同的版本来运行,还是一样的问题。
发表于 2010-2-5 22:16:22 | 显示全部楼层
回复 1# laojikelly


    刚到那贴看了下,那两个都错了……
第一段:你这里的第13行,And 应该是 Or
第二段:你这里的第3行,<> 应该是 <
发表于 2010-2-5 22:21:47 | 显示全部楼层
另外,仔细看LZ 的头像好像 ><  呵呵
发表于 2010-2-5 22:26:34 | 显示全部楼层
头像又有点像囧
发表于 2010-2-5 22:58:08 | 显示全部楼层
好好学习,
天天向上!
 楼主| 发表于 2010-2-5 23:07:02 | 显示全部楼层
哎,原来我一直没去看这段代码就去洗澡了。之前只是在测试,可能太信任源码区了。以为源码区的东西都是成品。这么简单的东西,居然让超级版主来回答。。。一看就知道没用脑去思考。。。丢脸矣。。。
发表于 2010-2-5 23:20:53 | 显示全部楼层
我不解的是:原帖 http://www.autoitx.com/thread-12719-1-1.html 回复6页多了,没人提出问题(LZ除外)?
回帖可是有钱加哦
发表于 2010-2-5 23:40:50 | 显示全部楼层
头像又有点像囧
catcher 发表于 2010-2-5 22:26



    看得我吃不下饭!!!
发表于 2010-2-5 23:51:31 | 显示全部楼层
试试我的
#include <Date.au3>
$_End_date = "2012-12-21";结束日期
$_Now_date = _NowDate()
$_End_Splt = StringSplit($_End_date, "-")
$_Now_Splt = StringSplit($_Now_date, "-")
$_sDate_End = _Date_Time_EncodeFileTime($_End_Splt[2], $_End_Splt[3], $_End_Splt[1])
$_sDate_Now = _Date_Time_EncodeFileTime($_Now_Splt[2], $_Now_Splt[3], $_Now_Splt[1])
$_Compare = _Date_Time_CompareFileTime(DllStructGetPtr($_sDate_End), DllStructGetPtr($_sDate_Now))
If $_Compare = -1 Then
        MsgBox(0, "", "世界末日 已经结束,谢谢支持!")
ElseIf $_Compare = 0 Then
        MsgBox(0, "", "你很荣幸正在经历 世界末日!")
Else
        $DateCalc = _DateDiff('d', $_Now_date, $_End_date)
        MsgBox(0, "", "世界末日 将发生于 " & $_End_date & " (" & $DateCalc & "天) 后!")
EndIf
Exit

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2010-2-6 00:52:44 | 显示全部楼层
加入版主的获取网络日期
#include <Date.au3>
$_End_date = "2012-12-21";结束日期
$_Now_date = _GetSrv_Date()
$_End_Splt = StringSplit($_End_date, "-")
$_Now_Splt = StringSplit($_Now_date, "-")
$_sDate_End = _Date_Time_EncodeFileTime($_End_Splt[2], $_End_Splt[3], $_End_Splt[1])
$_sDate_Now = _Date_Time_EncodeFileTime($_Now_Splt[2], $_Now_Splt[3], $_Now_Splt[1])
$_Compare = _Date_Time_CompareFileTime(DllStructGetPtr($_sDate_End), DllStructGetPtr($_sDate_Now))
If $_Compare = -1 Then
        MsgBox(0, "", "世界末日 已经结束,谢谢支持!")
ElseIf $_Compare = 0 Then
        MsgBox(0, "", "你很荣幸正在经历 世界末日!")
Else
        $DateCalc = _DateDiff('d', $_Now_date, $_End_date)
        MsgBox(0, "", "世界末日 将发生于 " & $_End_date & " (" & $DateCalc & "天) 后!")
EndIf
Exit

Func _GetSrv_Date()
        Local $_Srvlist[14] = ["time-nw.nist.gov", _
                        "time-a.nist.gov", _
                        "time-b.nist.gov", _
                        "time-a.timefreq.bldrdoc.gov", _
                        "time-b.timefreq.bldrdoc.gov", _
                        "time-c.timefreq.bldrdoc.gov", _
                        "utcnist.colorado.edu", _
                        "time.nist.gov", _
                        "nist1.datum.com", _
                        "nist1.dc.glassey.com", _
                        "nist1.ny.glassey.com", _
                        "nist1.sj.glassey.com", _
                        "nist1.aol-ca.truetime.com", _
                        "nist1.aol-va.truetime.com"]
        UDPStartup()
        Local $_Time_Srv
        For $x = 0 To UBound($_Srvlist) - 1
                $_Time_Srv = $_Srvlist[$x]
                Local $Socket = UDPOpen(TCPNameToIP($_Time_Srv), 123)
                If @error <> 0 Then ContinueLoop
                $Status = UDPSend($Socket, MakePacket())
                If $Status = 0 Then ContinueLoop
                Local $Data = "", $i = 0
                While $Data = ""
                        $i += 1
                        $Data = UDPRecv($Socket, 100)
                        If $i = 5 Then ContinueLoop (2)
                        Sleep(88)
                WEnd
                UDPCloseSocket($Socket)
                UDPShutdown()
                ExitLoop
        Next
        If $Data = "" Then Return 0
        $Data = UnsignedHexToDec(StringMid($Data, 83, 8))
        $Data = _DateTimeFormat(_DateAdd("s", $Data, "1900/01/01 08:00:00"), 0)
        Return $Data
EndFunc   ;==>_GetSrv_Date

Func MakePacket()
        Local $P, $D = "1b0e01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
        While $D
                $P &= Chr(Dec(StringLeft($D, 2)))
                $D = StringTrimLeft($D, 2)
        WEnd
        Return $P
EndFunc   ;==>MakePacket

Func UnsignedHexToDec($_Data)
        Return Dec(StringTrimRight($_Data, 1)) * 16 + Dec(StringRight($_Data, 1))
EndFunc   ;==>UnsignedHexToDec
 楼主| 发表于 2010-2-6 13:45:51 | 显示全部楼层
呵呵,谢谢楼上的咯。。。学多点语法。
发表于 2010-4-10 20:54:23 | 显示全部楼层
第二段:你这里的第3行,<> 应该是 <

试了似乎不行
发表于 2010-10-22 09:41:08 | 显示全部楼层
如何可以更改这个应用到期时间呀,打包成EXE文件后,如果放在INI里面不怎么好
发表于 2011-1-10 15:49:54 | 显示全部楼层
头像真可爱 呵呵
发表于 2011-8-20 16:52:00 | 显示全部楼层
回复 10# bing614


    如果被防火墙禁止 或者没有网络 那不是就不能运行了?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-1 19:34 , Processed in 0.078864 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表