В моем приложении есть возможность загружаться при запуске.Раньше это работало нормально, но теперь уже не работает, как должно.Когда я проверяю диспетчер задач сразу после загрузки системы, я вижу, что приложение загружается, приостанавливается и уничтожается Windows.
Я использую следующий фрагмент кода для установки ключа регистрации:
private void checkBox_startOnBoot_CheckedChanged(object sender, EventArgs e) //Update settings, set value of registery key
{
if (checkBox_startOnBoot.Checked)
{
using (RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
{
key.SetValue(Application.ProductName, Application.ExecutablePath);
}
}
else
{
using (RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
{
key.SetValue(Application.ProductName, false);
}
}
Settings.Default.Start_On_Boot = checkBox_startOnBoot.Checked;
Settings.Default.Save();
}
Я не вижу в функции Main () ничего, что могло бы вызвать неисправность:
static void Main()
{
if (Settings.Default.Restarting)
{
Settings.Default.Restarted = true;
Settings.Default.Save();
}
using (oneInstanceMutex = new Mutex(false, "Global\\" + appGuid))
{
if (!oneInstanceMutex.WaitOne(0, false)) // If app already running, but is not restarting // && restartMutex.WaitOne(0, false)
{
if (!Settings.Default.Restarting)
{
AlreadyRunning();
return;
}
}
hpt = new HookProcThread();
hpt.Run();
SystemEvents.PowerModeChanged += OnPowerChange;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
mw = new MainWindow();
if (Settings.Default.Restarted)
{
mw.WindowState = (FormWindowState)Settings.Default.RestartingWindowMode;
}
Settings.Default.Restarting = false;
Settings.Default.Save();
Application.Run(mw);
}
}
Так что, если у кого-то есть идея, как я могу предотвратить приостановку и уничтожение приложения при загрузке, это было бы здорово!