彩世界平台-彩世界时时app-彩世界开奖app苹果下载

热门关键词: 彩世界平台,彩世界时时app,彩世界开奖app苹果下载

您的位置:彩世界平台 > 彩世界时时app > Windows中实现不依赖账户登录的开机启动程序,不

Windows中实现不依赖账户登录的开机启动程序,不

发布时间:2019-09-07 21:46编辑:彩世界时时app浏览(75)

    Windows中实现不依赖账户登录的开机启动程序,不依赖账

    在Windows中很多的任务,我们希望能够在Windows 启动之后自动运行。举个例子,公司有个订饭系统,基本每天都需要登录去订饭,于是写一个脚本实现自动订饭。可是你的电脑每天要关机,当然不希望开机后还需要手动运行这个订饭脚本了。于是此时我们要将其这种脚本实现为开机自动启动脚本。
    但要注意本文要讲的开机启动的程序,是在用户还没有登录的情况下实现启动的。换句话说,本文描述的开机启动的程序运行在Session 0中 主要介绍了3中方法, 大家可以选择合适的方法去实现。

    很多开机启动程序仅仅加在启动项里面,只有登陆后才真正启动。windows服务在开机未进行用户登录前就启动了。正是利用这一点,解决一些服务器自动重启后特定软件也自动启动的问题。

    Windows Service

    当Windows 启动的时候,还没有登录账号的时候,此时Windows中设置为auto状态的Service 将会在Session 0中运行。可以按照如下步骤去实现Windows Service:

    1. 如果还没有实现过Windows Service 程序的同学,可以参考这篇文章《Simple Windows Service in C++》去实现。
    2. 通过命令行创建Service, 主要注意start= auto设置Service为开机启动。

      sc create “SERVICE_NAME” binpath= "SERVICE_PROGRAM" displayname= "SERVICE_DESCRIPTION" start= auto

    1.新建一个服务项目 visual C#----windows----windows服务;

    Windows Startup Script

    按照如下步骤:

    1. 打开本地的组策略管理,运行命令gpedit
      2. 然后依次打开Computer Configuration->Windows Settings->Scripts-> Startup, 在Startup中配置需要开机启动的脚本或者程序。
      在机器中的配置,我们都尽可能的希望自动化,于是希望通过脚本来完成这个动作。可惜没有CMD 命令可以直接使用这种方法添加启动程序,后来博主搜索了一些方法,有通过直接修改注册表的、也有通过vb脚本去实现的,但这些方法个人觉得还不够直接,简单。
      于是博主找到了接下来要说的方法,通过Windows定时任务管理器。

    2.添加一个dataset(.xsd),用于存储启动目标的路径,日志路径等。

    Windows Schedule Task

    Windows定时任务管理器,提供了强大的功能:可以定时的执行任务,除了按照时间去触发定时任务,其还提供了开机启动触发程序运行的功能,你可以通过图形界面的方式配置,也可以通过命令方式:

    • 依次打开Control Panel->Administrative Tools->Task Scheduler,然后再里面新建自己的任务。主要注意以下两点:
      • 任务运行的账号选成”System”
      • 触发器中,选择At Startup触发器
    • 使用如下命令行:
    schtasks /create /TN "TASK_NAME" /RU SYSTEM /SC ONSTART /TR "TASK_PROGRAM"
    

       在dataset可视化编辑中,添加一个datatable,包含两列 StartAppPath 和 LogFilePath。分别用于存储目标的路径、日志路径。

       *我认为利用dataset.xsd存储配置参数的优势在于可以忽略xml解析的具体过程直接使用xml文件。

         在dataset中 提供了ReadXml方法用于读取xml文件并将其转换成内存中的一张datatable表,数据很容易取出来!同样,WriteXml方法用于存储为xml格式的文件,也仅仅需要一句话而已。

    1. program.cs文件 作为程序入口,代码如下:

    view plaincopy to clipboardprint?
    using System.Collections.Generic;  
    using System.ServiceProcess;  
    using System.Text;  

    namespace WindowsServices_AutoStart  
    {  
        static class Program  
        {  
            /// <summary>  
            /// 应用程序的主入口点。  
            /// </summary>  
            static void Main()  
            {  
                ServiceBase[] ServicesToRun;  

                // 同一进程中可以运行多个用户服务。若要将  
                // 另一个服务添加到此进程中,请更改下行以  
                // 创建另一个服务对象。例如,  
                //  
                //   ServicesToRun = new ServiceBase[] {new Service1(), new MySecondUserService()};  
                //  
                ServicesToRun = new ServiceBase[] { new WindowsServices_AutoStart() };  

                ServiceBase.Run(ServicesToRun);  
            }  
        }  
    }
    using System.Collections.Generic;
    using System.ServiceProcess;
    using System.Text;

    namespace WindowsServices_AutoStart
    {
        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            static void Main()
            {
                ServiceBase[] ServicesToRun;

                // 同一进程中可以运行多个用户服务。若要将
                // 另一个服务添加到此进程中,请更改下行以
                // 创建另一个服务对象。例如,
                //
                //   ServicesToRun = new ServiceBase[] {new Service1(), new MySecondUserService()};
                //
                ServicesToRun = new ServiceBase[] { new WindowsServices_AutoStart() };

    本文由彩世界平台发布于彩世界时时app,转载请注明出处:Windows中实现不依赖账户登录的开机启动程序,不

    关键词:

上一篇:ubuntu16下终端使用shadowsocks

下一篇:没有了