我想禁用一个按钮20分钟,即使应用程序重新启动,也应该保持禁用状态。
我想通过读取和存储按下按钮的时间来做这件事,然后每分钟读取系统时间,当经过的时间是20分钟或更长时间时,启用按钮。
我认为如果应用程序重新启动,这将允许我恢复按下按钮的时间;然后检查经过的时间。
你认为这是个好主意吗? 还有其他选择吗?答案 0 :(得分:3)
由于您希望此设置即使应用程序重新启动也能正常工作,除非您涉及外部代理,否则无法实现此功能。您可能尝试的一些选项包括:
从http://time.windows.com或nist等读取当前的Internet时间并将其存储在某处(注册表或本地文件)。在您的应用程序中使用一个计时器,该计时器不断从Internet获取最新时间并将其与保存值进行比较。 This post允许您使用HTTP和TCP端口13读取当前的Internet时间。
使用Windows计划任务。在某处设置bool标志(文件/注册表再次)并要求计划任务在20分钟后清除标志。 This post可以帮助您创建计划任务。
创建一个在后台运行的Windows服务,您可以调用该服务来设置标志以及此标志应保持设置的时间长度。该服务应该运行一个内部Timer(并且不应该依赖系统时间)来跟踪" ticks"。在指定的时间过后,服务应清除标志。
答案 1 :(得分:1)
这就是我的想法,
如果应用程序在设置时间戳之前崩溃或重新启动: 1.设置时间戳时,请确保表或文件为空。如果没有,启用计时器 - 时间戳就在那里。
答案 2 :(得分:-1)
如果我是你,我基本上禁用了按钮 然后启动一个计时器,每个minuite,程序应该写一个文件剩余的时间以及当前时间(你也可以解密这个文件,这样用户就无法改变它)
现在程序重新启动时,它应该读取此文件,并根据fil中的写入时间启动计时器:)
如果您希望计时器在程序关闭时工作,那么您可以查看(File.GetLastAccessTime)
基本上,您应该将已写入fil的(当前时间)与上次访问时间进行比较,并创建一个函数来获得剩余时间:)
这可能不是一个完美的解决方案,但它会正常工作(我猜)
亲切的问候:)