# 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文件後完成,開機自啟動桌面順序。