应用程序在启动时显示在进程树中,但实际未运行
本文关键字:运行 启动 显示 进程 应用程序 | 更新日期: 2023-09-27 18:24:40
我创建了一个程序来检查系统时间,将该时间写入文件,如果1个小时过去了,则通过比较文件中的时间和当前系统时间来做一些事情。我选择了这种方法,因为我希望即使在这段时间关闭电脑,这种方法也能奏效。我已经在注册表中添加了要启动的程序,该程序在重新启动时显示在taskmanager进程选项卡中,但无法按预期工作。如果在此期间没有重新启动或关闭计算机,则它可以正常工作。请告诉我,我做错了什么。我的代码是
static void Main(string[] args)
{
try
{
RegistryKey reg = Registry.CurrentUser.OpenSubKey("SOFTWARE''MICROSOFT''WINDOWS''CURRENTVERSION''RUN", true); // Add to registry to startup automatically in case of system shutdown or restart.
reg.SetValue("Notifier", "'"" + Application.ExecutablePath.ToString() + "'"");
}
catch
{
MessageBox.Show("There was an error switching the registry key");
}
string Trigger = "time";
DateTime _triggerDate;
if (!File.Exists(Trigger))
{
using (StreamWriter sw = new StreamWriter(Trigger,true))
{
sw.Write(DateTime.Now.AddHours(1));
}
}
using (StreamReader sr = File.OpenText(Trigger))
{
_triggerDate = DateTime.Parse(sr.ReadToEnd());
}
while (true)
{
if (DateTime.Now >= _triggerDate)
{
doSomething();
break;
}
else
{
System.Threading.Thread.Sleep(120000); // Sleep for 2 minutes
}
}
}
请澄清出了什么问题。。我还检查了注册表
尝试为触发器时间文件设置一个绝对路径。如果你只是把它称为"时间",它会相对于你启动程序的工作目录保存。windows的自动启动将在另一个目录中启动,因此将找不到您的触发时间文件。