zoukankan      html  css  js  c++  java
  • C# 程序设置开机启动(一)

    一、示例使用VBScript创建启动文件,并添加到Windows系统的启动目录

    默认情况下

    所有用户启动目录:C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp

    当前用户的启动目录:C:Users【用户】AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup

    1.创建VBScript文件,指定后台启动exe可执行文件,命名为"xxx.vbs"。

    注:双击vbs文件就可以后台启动exe文件了

    set wscriptObj = CreateObject("Wscript.Shell")   
    wscriptObj.run "C:UsersHKDesktopHKServerEditVersion2.4DebugHKServer.exe",0  

    2.将VBScript文件手动移动到系统的启动文件夹

    把.vbs文件(或者它的快捷方式)直接复制到 开始-->所有程序-->启动  文件夹下。

    两个启动目录都可以,只是针对的用户范围不同。

    注:

    1.移动文件的时候很多时候,需要管理员权限,点击允许就行了。

    2.如果是快捷方式,可以没有扩展名。

    二、在代码中自动创建开机启动文件处理

    注意:

    1.追加脚本内容,需要指定为默认编码

    2.如果需要以管理员身份启动或者将启动设置为所有的本地用户,需要移动到C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp,

    使用注册表获取目录的之后个目录需要为LocalMachine。

     3.关于程序以管理员身份运行参考:C#如何以管理员身份运行程序(转)

    class Program
    {
    static void Main(string[] args)
    {
        Console.WriteLine("Hello world");
        Console.WriteLine(DateTime.Now);
    
        CreateStartup();
        Log("程序启动成功");
    
        Task.Factory.StartNew(() =>
        {
            while (true)
            {
                Log($"时间:{DateTime.Now}");
                Thread.Sleep(1000);
            }
        });
        Console.Read();
    }
    //记入日志
    static void Log(string content)
    {
        //日志记录到桌面
        string path = LocalPathHelper.DesktopPath + "\data.txt";
        if (File.Exists(path) == false)
        {
            File.Create(path).Close();
        }
        File.AppendAllText(path, $"{content}
    ", Encoding.Default);
    }
    /// <summary>
    /// 为当前程序创建后台启动文件到 开机启动文件夹
    /// </summary>
    static void CreateStartup()
    {
        /**
            * 创建文件到了当前用户的启动文件夹
            */
        //C:Users	ianmaAppDataRoamingMicrosoftWindowsStart MenuProgramsStartupConsole1.vbs
        //使用本地的启动文件夹
        //如果想移动到这个目录需要的操作:
        //1.当前程序以管理员身份运行
        //2.获取的注册表的根节点设置为LocalMachine
        //C:ProgramDataMicrosoftWindowsStart MenuProgramsStartupConsole1.vbs
        string path = LocalPathHelper.StartupPath + "\Console1.vbs";
        if (File.Exists(path) == false)
        {
            File.Create(path).Close();
            StringBuilder str = new StringBuilder();
            str.AppendLine("set wscriptObj = CreateObject("Wscript.Shell")");
            str.AppendLine("wscriptObj.run "" + LocalPathHelper.CurrentProgramPath + "\Console1.exe",0");
            str.AppendLine();
            //需要指定编码,不然无法运行命令
            File.AppendAllText(path, str.ToString(), Encoding.Default);
        }
    }
    }

    三、如果需要一管理员的身份运行的程序,程序启动时都需要授权,重启后也是。

     

    更多:

    C# 根据注册表获取当前用户的常用目录整理

    Windows服务简单实例

    VS Code搭建.NetCore开发环境(二)

  • 相关阅读:
    vscode 前端好用插件汇总
    IE8和IE9下textarea滚动选中的问题
    javascript实现数字整数位每三位一个逗号分隔
    简单枚举(算法竞赛入门经典)
    拓扑排序(算法竞赛入门经典)
    七桥问题--欧拉(算法竞赛入门经典)
    走迷宫问题 算法竞赛入门经典
    ZOJ1008
    ZOJ1163
    HDU 1069 Monkey and Banana
  • 原文地址:https://www.cnblogs.com/tianma3798/p/6553015.html
Copyright © 2011-2022 走看看