C# 程序设置开机启动(一)
一、示例使用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# 程序设置开机启动(一)的更多相关文章
- [转载]C#设置开机启动
原理就是在注册表启动项里添加一项.路径:SOFTWARE\Microsoft\Windows\CurrentVersion\Run或者直接:运行->regedit找到这个路径添加一项. usin ...
- ubuntu设置开机启动图形应用程序,替换默认图形桌面
直接将启动程序放在rc.local即可.但是如果自动启动的程序奔溃后,会返回到ubuntu的unity桌面系统. 我遇到的问题是程序还有调用 xset 去定时关闭屏幕.在桌面启动后调用没问题.如果rc ...
- Linux上设置开机启动Java程序
在Linux上设置开机启动Java程序,例如:test.jar 在Linux上启动Java程序的命令: nohup java -jar test.jar >/dev/>& & ...
- linux设置开机启动程序?
/etc/rc.d/init.d 是 /etc/init.d的目标链接. 如果/etc/rc.d下面没有 rc.local脚本文件, 则需要 手动创建: 而 /etc/bashrc 是在登陆bash ...
- ubuntu下设置开机启动服务
原文:http://blog.csdn.net/dante_k7/article/details/7213151 在ubuntu10.04之前的版本都是使用chkconfig来进行管理,而在之后的版本 ...
- windows设置开机启动项
一.windows下设置开机启动有如下方法 1 注册表启动项目RUN 2 计划任务,在"windows管理">"计划任务管理器"中新建任务,在操作栏指定要 ...
- windows下架设SVN服务器并设置开机启动
原文:windows下架设SVN服务器并设置开机启动 1.安装SVN服务器,到http://subversion.apache.org/packages.html上下载windows版的SVN,并安装 ...
- Ubuntu 18.04 启用 rc.local 设置开机启动
ubuntu18.04 不再使用initd管理系统,改用systemd. 然而systemd很难用,改变太大,跟之前的完全不同. 使用systemd设置开机启动为了像以前一样,在/etc/rc.loc ...
- C#——设置开机启动
将exe应用程序设置为开机启动,有多种方法,我们主要通过注册表设置开机启动选项. using Microsoft.Win32; using System.Windows.Forms; static v ...
随机推荐
- MNMP下nginx1.6开启支持pathinfo配置,支持thinkphp的URL格式
对于thinkphp框架项目的访问格式有多种,其中pathinfo是默认的基本访问格式,格式为:http://hostname:port/index.php/模块名/action名/参数1/参数1的值 ...
- phpinfo常见配置信息
在开发过程中,经常碰到比如加载的是哪个配置文件.上传文件大小受限.PHP错误日志文件位置等问题需要快速查找出来并解决,因此总结记录出下面的相关配置. phpinfo - 输出关于 PHP 配置的信息 ...
- spring+springmvc+hibernate 礼品管理系统
spring+springmvc+hibernate template礼品管理系统 1.简单介绍 如标题所示,这篇文章简单写了一个基于spring+springmvc+hibernate templa ...
- 循序渐进学.Net Core Web Api开发系列【9】:常用的数据库操作
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇描述一 ...
- java过滤器、监听器、拦截器机制
一.过滤器 Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 ...
- Java异常类层次结构图
1. 分类图镇楼: 2.运行时异常与非运行时异常区别: Java 提供了两类主要的异常 :runtime exception 和 checked exception. 2.1 checked exce ...
- JDBC之 连接池
JDBC之 连接池 有这样的一种现象: 用java代码操作数据库,需要数据库连接对象,一个用户至少要用到一个连接.现在假设有成千上百万个用户,就要创建十分巨大数量的连接对象,这会使数据库承受极大的压力 ...
- Moscow Subregional 2013. 部分题题解 (6/12)
Moscow Subregional 2013. 比赛连接 http://opentrains.snarknews.info/~ejudge/team.cgi?contest_id=006570 总叙 ...
- 【面试虐菜】—— JAVA面试题(2)
前篇推荐:http://www.cnblogs.com/xing901022/p/3975626.html 1 String = 与 new 的不同 使用“=”赋值不一定每次都创建一个新的字符串,而是 ...
- mysql导入csv文件
今天尝试将Oracle中的数据导入到mysql中,在SQLyog工具其中看到一些sql语句,拿来记录一下,说不定以后就用的着呐! -----查看ydtf数据库中的基础表,就是用户创建了哪些表 SHOW ...