2017-06-23 23 views
0

Windows起動時にアプリケーションを起動しようとしていますが、起動していないとSQLサービスを開始しようとしていますが、システムを再起動しても起動しません。Windows起動時にC#アプリケーションが起動しない

スタートアップ

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

key.SetValue( "Attendence"、Application.ExecutablePath.ToString())に登録するには

  • 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> 
でSQLサービスを開始するには0

regedit showing my app listed over there

+0

はこれを試してみてください。アプリケーションを右クリックし、「ショートカットの作成 - >デスクトップ内」を選択します。今すぐStartup Folderのショートカットをコピーしてください。 Windows 8以上の場合。ウィンドウ+ R(RUN)とタイプ "シェル:スタートアップ"。 – user3501749

+0

私はそれをコードで行いたい – Dhaval

答えて

0

変更:

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

に:

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

(パスは、その中にスペースを有するため)経路の周りに必要な引用符を提供します。このかもしれない作品が、あなたはすぐにあなたのプログラムを開始してから、それを起動する必要がある場合は、あなたのForm1_Loadコードブロック内でこれを置く

コード

0

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