我正在尝试在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);
}
<applicationRequestMinimum>
<defaultAssemblyRequest permissionSetReference="Custom" />
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
</applicationRequestMinimum>
答案 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 + "\"");
}