以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于系统引用系统日期,用户更改电脑的系统日期后,代码引用后的系统日期会有误,如何解决?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=114426)

--  作者:guosheng
--  发布时间:2018/2/6 8:58:00
--  关于系统引用系统日期,用户更改电脑的系统日期后,代码引用后的系统日期会有误,如何解决?
1.记录操作日期:如果用户更改了电脑的系统日期,则该列记录值会不是真正的系统日期。
2.按钮可用性:设定系统日期为20-25号时才可用,但是如果用户更改了系统日期,则代码限制按钮的可用性将失效。
以上两个问题请老师帮忙,看如何解决啊?

--  作者:有点甜
--  发布时间:2018/2/6 9:40:00
--  

1、可以获取数据库时间

 

http://www.foxtable.com/webhelp/scr/2318.htm

 

2、获取互联网时间

 

Dim url As String = "http://api.k780.com/?app=life.time&appkey=29911&sign=979fa2b6ab36dbe291bbd12e5c6db870&format=json"
Dim rqst As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(url)
Dim rsps As System.Net.HttpWebResponse = rqst.GetResponse
Dim stm As System.IO.Stream = rsps.GetResponseStream()
Dim reader As New System.IO.StreamReader(stm)
Dim str As String = reader.ReadToEnd
stm.Dispose()
Output.Show(str)

Dim data As object
Dim JscriptCode = "function toObject(json) {eval(""var o=""+json);return o;}"
Dim ScriptControl = CreateObject("MSScriptControl.ScriptControl")
With ScriptControl
    .Language = "Javascript"
    .Timeout = -1
    .AddCode(JscriptCode)
    data = .Run("toObject", str)
End With

Dim d As Date = data.result.datetime_1
msgbox(d)
\'Today = d \'设置系统时间
\'TimeOfDay = d

 

3、可以做一个防止作弊的功能。保存系统每次获取到的日期,比如人家设置成2月23日了,然后再设置回2月6日,(对比最大的日期和当前日期)提示他作弊了,禁止再打开项目。


--  作者:guosheng
--  发布时间:2018/2/6 11:09:00
--  
老师的方案很完美。多谢。