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

默认情况下

所有用户启动目录:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

当前用户的启动目录:C:\Users\【用户】\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

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

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

set wscriptObj = CreateObject("Wscript.Shell")
wscriptObj.run "C:\Users\HK\Desktop\HKServerEditVersion2.4\Debug\HKServer.exe",

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

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

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

注:

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

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

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

注意:

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

2.如果需要以管理员身份启动或者将启动设置为所有的本地用户,需要移动到C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp,

使用注册表获取目录的之后个目录需要为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();
}
});
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}\r\n", Encoding.Default);
}
/// <summary>
/// 为当前程序创建后台启动文件到 开机启动文件夹
/// </summary>
static void CreateStartup()
{
/**
* 创建文件到了当前用户的启动文件夹
*/
//C:\Users\tianma\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\Console1.vbs
//使用本地的启动文件夹
//如果想移动到这个目录需要的操作:
//1.当前程序以管理员身份运行
//2.获取的注册表的根节点设置为LocalMachine
//C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\Console1.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开发环境(二)

C# 程序设置开机启动(一)的更多相关文章

  1. [转载]C#设置开机启动

    原理就是在注册表启动项里添加一项.路径:SOFTWARE\Microsoft\Windows\CurrentVersion\Run或者直接:运行->regedit找到这个路径添加一项. usin ...

  2. ubuntu设置开机启动图形应用程序,替换默认图形桌面

    直接将启动程序放在rc.local即可.但是如果自动启动的程序奔溃后,会返回到ubuntu的unity桌面系统. 我遇到的问题是程序还有调用 xset 去定时关闭屏幕.在桌面启动后调用没问题.如果rc ...

  3. Linux上设置开机启动Java程序

    在Linux上设置开机启动Java程序,例如:test.jar 在Linux上启动Java程序的命令: nohup java -jar test.jar >/dev/>& & ...

  4. linux设置开机启动程序?

    /etc/rc.d/init.d 是 /etc/init.d的目标链接. 如果/etc/rc.d下面没有 rc.local脚本文件, 则需要 手动创建: 而 /etc/bashrc 是在登陆bash ...

  5. ubuntu下设置开机启动服务

    原文:http://blog.csdn.net/dante_k7/article/details/7213151 在ubuntu10.04之前的版本都是使用chkconfig来进行管理,而在之后的版本 ...

  6. windows设置开机启动项

    一.windows下设置开机启动有如下方法 1 注册表启动项目RUN 2 计划任务,在"windows管理">"计划任务管理器"中新建任务,在操作栏指定要 ...

  7. windows下架设SVN服务器并设置开机启动

    原文:windows下架设SVN服务器并设置开机启动 1.安装SVN服务器,到http://subversion.apache.org/packages.html上下载windows版的SVN,并安装 ...

  8. Ubuntu 18.04 启用 rc.local 设置开机启动

    ubuntu18.04 不再使用initd管理系统,改用systemd. 然而systemd很难用,改变太大,跟之前的完全不同. 使用systemd设置开机启动为了像以前一样,在/etc/rc.loc ...

  9. C#——设置开机启动

    将exe应用程序设置为开机启动,有多种方法,我们主要通过注册表设置开机启动选项. using Microsoft.Win32; using System.Windows.Forms; static v ...

随机推荐

  1. springboot工程pom的两种配置方式

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  2. 什么是新生代 GC 和老年代 GC

    GC 经常发生的区域是堆区,堆区还可以细分为新生代.老年代 jvm堆示意图 新生代 一个 Eden 区 两个 Survivor 区 老年代 默认 新生代(Young)与老年代(Old)的比例的值为 1 ...

  3. MySQL Binlog 解析工具 Maxwell 详解

    maxwell 简介 Maxwell是一个能实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis.RabbitMQ.Redis.Goog ...

  4. windows10 下安装tensorflow 并且在jupyter notebook 上使用tensorflow

    一.安装jupyter notebook并配置环境 首先建议大家安装anaconda,最新版本请到官网下载(点击下载连接),没错,直接点击下载python3.6版本的(当然选择做自己电脑相应的位数,我 ...

  5. react运行阶段

    运行中可以使用的函数componentWillReceiveProps:父组件修改属性触发,可以修改新属性,修改状态.字面意思,组件将要接收属性,这个函数触发的时机就是组件的属性将要发生改变的时候,但 ...

  6. 【HDU 5382】 GCD?LCM! (数论、积性函数)

    GCD?LCM! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  7. 【转】SQL Server游标的使用

    在关系数据库中,我们对于查询的思考是面向集合的.而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服. 正常面向集合的思维方式是: 而对于游标来说: ...

  8. “一次编写,随处运行” Intel HTML5技术研讨会

    HTML5 是一种开放标准.通过使用此标准,开发人员只需编写一次程序,即可在任何地方运行. 这一跨平台方法能够显著增加开发人员的总体潜在受众,同时在不同屏幕尺寸上为用户带来更一致的体验.因此,HTML ...

  9. OpAmp Voltage Follower/Regulator

    LDO Regulator High accuracy voltage regulator Vout = 2.5V * (1 + ( 5.6 / 6.8 ) ) = 4.55V Recently th ...

  10. STM32 Controller area network (bxCAN) Identifier filtering

    Identifier filtering In the CAN protocol the identifier of a message is not associated with the addr ...