浏览目次
建立体系效劳
开启效劳,启动顺序
我们晓得开机自启动顺序假如在用户不登录的情况下是不启动的,然则效劳类顺序是能够跨过用户登录启动的,比方IIS效劳,SQL效劳。假如我们已写好了桌面应用顺序,又愿望他开机自启动,那就须要借助体系效劳在未登录的时刻翻开顺序。
建立体系效劳
在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文件后完成,开机自启动桌面顺序。
注:有朋侪在题目中提到了运转的题目,我在这里截张图
运转后的顺序假如有和桌面交互的语句,会有以下提醒,如你MessgeBox语句
点进去以后会有一个全新的桌面,上面运转着你经由过程效劳启动的顺序,假如和桌面不交互,你在历程里能够看到exe正在运转,他的显现界面在交互式效劳里本身平静的运转。
以上就是详解C#不登录电脑启动顺序(图文)的细致内容,更多请关注ki4网别的相干文章!