设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
排行榜
积分充值
帖子
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
控制专题
›
『高级语言/组态软件/触摸屏』
›
C#上位机配置开机自启动
返回列表
发新帖
C#上位机配置开机自启动
[复制链接]
42558
|
0
|
2024-12-24 14:57:22
|
显示全部楼层
|
阅读模式
上位机项目很多都要有开机自启动功能。在计算机意外关机或者正常重启后需要能够自动运行。常用的自启动方式有加入启动文件夹、注册表启动项、计划任务和系统服务等几种。
加入启动文件夹
将需要开机自启动程序的快捷方式放入到启动文件夹中即可在系统启动时自动运行该应用程序。删除快捷方式即可取消开机自启动。
开机启动文件夹分为当前用户和所有用户,路径分别如下:
当前用户:
C:\Users<用户名>\AppData\Roaming\
Microsoft\Windows\Start Menu\Programs\Startup
所有用户:
C:\ProgramData\Microsoft\Windows\
StartMenu\Programs\Startup
以当前用户为例,在需要自启动的应用上右击,选择创建快捷方式以生成一个该应用的快捷方式文件。然后在运行窗口中输入“shell:startup”打开启动文件夹。
再将刚刚创建的快捷方式拖到启动文件夹即可。
当然也可以通过代码的方式实现。实现过程其实也就是在启动文件夹里创建应用的快捷方式。这种方式需要在程序中添加对Windows Script Host Object Model的引用。
写注册表启动项
可以将需要开机启动的程序信息写入到注册表
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run里面。
写入代码如下:
RegistryKey reg = Registry.LocalMachine;RegistryKey run = reg.CreateSubKey(@"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\");
if (AutoRun){ run.SetValue(“程序信息”,”程序路径”);}else{ if (null != run.GetValue(strAppName)) { run.DeleteValue(strAppName); }}
run.Close();reg.Close();
代码执行后可以在注册表“计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run”种看到该启动信息。
需要注意的是,应用程序需要有管理员权限才能写入注册表信息。
添加到任务计划程序
计划任务程序是Windows自带的一个功能。我们可以将需要运行的任务添加到该计划中。
任务的触发方式可以根据需要选择,比如开启运行、用户登录运行等。可以手动添加,也可以通过代码自动添加。在C#中,可以通过Microsoft.Win32.TaskScheduler实现自动添加。
注册为系统服务
可通过nssm等工具将我们的应用程序注册为windows服务。注册为windows服务后可以跟随系统自动启动。但是有一点需要注意,Windows服务不适用于带GUI界面的应用。
小结
在这四种方法中,后面两种用得不多。第三种方法启动GUI程序某些情况下会有一些问题,而第四种方法对GUI程序又不太友好。所以如果是GUI程序,推荐第一和第二种方法,对于非GUI程序,推荐第四种方法
实际项目应用
我个人最喜欢第一种方式,就是通过代码将应用加入到开机自启动菜单里面。这种方式不需要管理员权限,比较方便。但是在最近的一个项目中,这种方法不起作用。即使手动把快捷方式复制到启动文件夹里面也没用(本来是通过代码动态添加),但是双击却又可以正常启动。后来改用了写注册表的方式才解决了问题。
HwLib(慧兰博)技术团队专注于高端自动化技术,如果您对我们的技术教程感兴趣的话,可以X宝上搜索店铺“hwlib”或者“慧兰博”
关于HwLib(慧兰博)技术团队的更多信息:www.hwlib.com.cn
HwLib(慧兰博)技术团队技术资料:
https://www.jianguoyun.com/p/DR20ZAEQq_K3CBivk5kD
或者
https://pan.baidu.com/s/1wXJYgFf-FIUVNbC7IHdxEg?pwd=1234
提取码:1234
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
北岛李工
回复楼主
返回列表
『运动控制/工业总线』
『机器视觉/AI/IoT/机器人论坛』
『高级语言/组态软件/触摸屏』
『操作系统xp/xin7/win10/linux』