以下是该方案。
平台:Windows
语言:C#
.NET框架:3.5
IDE:Visual Studio 2008
我有一个用C#编写的可执行程序。它具有时间调度工具,即它具有numericupdown
框,其中用户可以指定数字和combobox
,其中用户可以指定持续时间(秒,分钟或小时)。 此计划不适用于GUI,但适用于某些特定操作/流程。
这就是发生的事情:
该程序是第一次运行。如果用户已经提供了一段时间来再次执行计划运行针对特定操作/流程,则按照指定的计划执行操作,但只要程序是运行。程序退出后,计划就会丢失
尝试我做了:
我创建了一个设置文件,用于保存表单上所有控件的值。当应用程序下次启动时,将引用此设置文件以将值加载到表单上的各种控件中(包括前面提到的时间调度控件)。我还使用以下代码在启动时添加了程序:
[RegistryPermissionAttribute(SecurityAction.LinkDemand,Write = @"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run")]
private void startup(bool add)
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
if (add)
{
key.SetValue("program_name", "\"" + Application.ExecutablePath + "\"");
}
else
key.DeleteValue("program_name");
key.Close();
}
的问题:
即使从设置文件导入值,但程序未按指定的时间表运行
我打算做什么:
当下次由用户手动或在系统启动时(即通过启动)执行程序时,应该参考先前设定的时间表,并且程序应该按照时间表再次运行而无需用户干预。现在,它首次需要用户干预,然后只要应用程序正在运行,就按计划运行
有没有办法做到这一点?这是什么被称为使程序存储器驻留?
感谢。
答案 0 :(得分:2)
安装程序应该引导用户将其设置为使用Windows Task Scheduler运行,而不是自己将其构建到界面中。
答案 1 :(得分:0)
听起来你基本上是在没有用户交互的情况下询问如何在指定的时间启动程序。