C#应用程序无法在Windows启动时启动

时间:2017-06-23 09:53:32

标签: c# windows-applications

我正在尝试在Windows启动时启动我的应用程序。而且我正在尝试启动sql服务如果没有启动哪个工作正常但是当我重新启动我的系统时,应用程序无法启动

  • 在启动时注册

    RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
    

    key.SetValue(“Attendence”,Application.ExecutablePath.ToString());

  • 启动SQL服务

    string PC_Name = System.Environment.GetEnvironmentVariable("COMPUTERNAME"); System.ServiceProcess.ServiceController sc = new System.ServiceProcess.ServiceController("MSSQL$SQLEXPRESS",PC_Name); if (sc.Status.Equals(ServiceControllerStatus.Stopped) || sc.Status.Equals(ServiceControllerStatus.StartPending)) { sc.Start(); System.Threading.Thread.Sleep(5000); }

    • 并在app.manifest

      

  <applicationRequestMinimum>
    <defaultAssemblyRequest permissionSetReference="Custom" />
    <PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
  </applicationRequestMinimum>

regedit showing my app listed over there

2 个答案:

答案 0 :(得分:0)

变化:

key.SetValue("Attendence", Application.ExecutablePath.ToString());

为:

key.SetValue("Attendence", "\"" + Application.ExecutablePath.ToString() + "\"");

在路径周围提供必要的引号(因为路径中有空格)。

答案 1 :(得分:0)

这可能有效,但如果您需要在启动程序后立即启动它,请将其放在Form1_Load代码块中

代码:

using (Microsoft.Win32.RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
        {
            key.SetValue("YourExecutable", "\"" + Application.ExecutablePath + "\"");
        }