# C#不登錄電腦啟動順序。本站提示廣大學習愛好者:(# C#不登錄電腦啟動順序)文章只能為提供參考,不一定能成為您想要的結果。以下是# C#不登錄電腦啟動順序正文
我們知道開機自啟動順序假如在用戶不登錄的狀況下是不啟動的,但是服務類順序是可以跨過用戶登錄啟動的,例如IIS服務,SQL服務。假如我們曾經寫好了桌面使用順序,又希望他開機自啟動,那就需求借助零碎服務在未登錄的時分翻開順序。
1.創立零碎服務在VS中創立Windows服務:
在Service的OnStart辦法中,啟動順序,代碼如下:
protected override void OnStart(string[] args) { if (!IsExistProcess("順序名")) { //順序途徑 string exePath = ""; Process.Start(exePath); } string path = AppDomain.CurrentDomain.BaseDirectory; FileInfo fi = new FileInfo(path + "\\info.txt"); using (FileStream stream = fi.OpenWrite()) { StreamWriter streamWriter = new StreamWriter(stream); streamWriter.Write("服務啟動日期:" + DateTime.Now.ToString()); streamWriter.Flush(); streamWriter.Close(); } } protected override void OnStop() { string path = AppDomain.CurrentDomain.BaseDirectory; FileInfo fi = new FileInfo(path + "\\info.txt"); using (FileStream stream = fi.OpenWrite()) { StreamWriter streamWriter = new StreamWriter(stream); streamWriter.Write("服務封閉日期:" + DateTime.Now.ToString()); streamWriter.Flush(); streamWriter.Close(); } } /// <summary> /// 判別進程能否開啟 /// </summary> /// <param name="processName"></param> /// <returns></returns> private bool IsExistProcess(string processName) { Process[] MyProcesses = Process.GetProcesses(); foreach (Process MyProcess in MyProcesses) { if (MyProcess.ProcessName.CompareTo(processName) == 0) { return true; } } return false; }
在Service的設計視圖添加裝置順序:
設置ProcessInstaller的Account為LocalSystem
設置serviceInstaller的StartType為Automatic,ServiceName和Description為進程中顯示的名字和描繪
順序編譯好,取出BIN文件夾,添加開啟服務和封閉服務的批處置文件,如下圖:
開啟桌面順序的關鍵點,更改良程登錄形式
裝置後啟動.bat內容為:
裝置服務
C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil AutoStart.exe
中止服務
sc stop AutoStartHik
更改登錄
sc config AutoStartHik type= interact type= own
啟動服務
sc start AutoStartHik
卸載服務.bat內容為:
段落引sc stop AutoStartHik
C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil AutoStart.exe /u
至此執行啟動服務的bat文件後完成,開機自啟動桌面順序。