我创建了一个完全正常的程序。但是,我陷入了一个特定的阶段。这就是 - 当用户运行程序并第一次点击Windows窗体中的按钮时;在我的情况下,程序将执行dsired任务,它将扫描特定目录中的文件并相应地显示结果。但是,如果用户在第一次运行后的4个小时内运行程序并单击按钮a;程序应该要求用户在4小时后尝试,并且它不应该执行当用户第一次运行程序时所做的所需任务。只有4小时后用户才能搜索该目录。
请帮帮我......
答案 0 :(得分:0)
嗯,显然你的程序必须记住最后一次执行。您可以通过多种方式存储此信息。显而易见的选择是本地文件系统和Windows注册表中的文件,但您也可以将此时间戳数据上载到数据库或Web服务。下面是一个代码片段,用于将当前日期和时间存储到本地文件中。
当用户点击按钮并允许您调用您的操作时执行此操作:
File.WriteAllText("filename.txt", DateTime.Now.ToString());
当用户再次点击时,请检查上次成功执行的时间:
string timestamp = File.ReadAllText("filename.txt");
DateTime lastRun = DateTime.Parse(timestamp);
if (DateTime.Now > lastRun.AddHours(4))
{
// user is allowed to invoke functionality again
}
注意:这种方法不是很安全,因为用户可以查找并删除它。因此,您应该考虑您的信任模型,并回答用户合作/破坏性的问题。