首页 新闻 搜索 专区 学院

Windows程序(Winform\WPF等)如何适配系统重启时自动启动应用的功能?

0
悬赏园豆:15 [已解决问题] 解决于 2021-11-19 11:04

请问如何适配系统重启时自动启动应用的功能?一直没找到相关API文档。

这个功能Win10 就有了(如图), 用起来就像把电脑不关机“睡眠” 一样, 只是这个“睡眠”只针对某个App一样。电脑上的Edge浏览器,记事本都支持这个功能。

问题补充:

我知道有启动项这个方式。但这个应该不属于开机启动。Chrome浏览器,Edge浏览器和记事本等支持这种自动重启的应用,他们在开机启动项里面找不到的,也不写注册表。

s8180unshiniyey的主页 s8180unshiniyey | 初学一级 | 园豆:36
提问于:2021-11-07 14:38
< >
分享
最佳答案
0
s8180unshiniyey | 初学一级 |园豆:36 | 2021-11-07 23:12
其他回答(2)
0

可以参考这个博客写的内容
C# 实现程序开机自启动
最近在做一个自动备份文件的小工具,需要用到开机自启动
https://www.cnblogs.com/huanjun/p/8438284.html

收获园豆:5
中华鲟3670 | 园豆:647 (小虾三级) | 2021-11-07 15:40

我知道有这个方式。但这个应该不属于开机启动。Chrome浏览器,Edge浏览器和记事本等支持这种自动重启的应用,他们在开机启动项里面找不到的,也不写注册表。

支持(0) 反对(0) s8180unshiniyey | 园豆:36 (初学一级) | 2021-11-07 17:30
0

在Windows没有账户登录的情况下,将应用自启动,而将其放入开机自启动文件夹下的方式无法满足,因此将其注册为service可以达到目的。

SC注册服务的方法
sc 命令:sc 命令可以管理本机或远程主机服务 ( 如果服务名或者目录中间有空格,就需要前后加双引号)

示例

0、将vbs脚本添加服务
sc create YYingService binPath= "cmd.exe /c start C:\xxx\xxx.vbs" start= auto displayname= "AutoStartTest Services"

1、简单将exe添加服务:
sc create test_sevrer binpath= "D:\test_sevrer\test_sevrer.exe" start= auto

2、添加服务:
sc create PolicyAgent binpath= "C:\WINDOWS\system32\lsass.exe" type= share start= auto displayname= "IPSEC Services" depend= RPCSS/Tcpip/IPSec
描述:
sc description PolicyAgent "提供 TCP/IP 网络上客户端和服务器之间端对端的安全。如果此服务被停用,网络上客户端和服务器之间的 TCP/IP 安全将不稳定。如果此服务被禁用,任何依赖它的服务将无法启动。"

3、指向配置文件;
sc create emm binpath= "D:\work\test_server.exe --config test_sevrer.exe.config" start= auto

删除注册的服务
1、 使用 sc delete 删除sc delete "服务名"

或者注册表删除,cmd 下 输入:regedit在下面找到键值删除
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services 一般服务会以相同的名字在这里显示一个主健,直接删除相关的键值便可。

配置服务自动 禁止
设置 iis 为自动 (显示为 World Wide Web Publishing Service )
"sc config W3SVC start= auto"

禁止
sc config "W3SVC" start= disabled

sc 命令延伸:

SC 是用于与服务控制管理器和服务进行通信的命令行程序。

sc <server> [command] [service name] <option1> <option2>...
选项 <server> 的格式为 "\ServerName""sc [command]" 查看参数帮助,
命令:
query # 查询服务的状态,或枚举服务类型的状态。
queryex # 查询服务的扩展状态,或枚举服务类型的状态。
start # 启动服务。
pause # 向服务发送 PAUSE 控制请求。
interrogate # 向服务发送 INTERROGATE 控制请求。
continue # 向服务发送 CONTINUE 控制请求。
stop # 向服务发送 STOP 请求。
config # 更改服务的配置(永久)。
description # 更改服务的描述。
failure # 更改服务失败时执行的操作。
failureflag # 更改服务的失败操作标志。
sidtype # 更改服务的服务 SID 类型。
privs # 更改服务的所需权限。
qc # 查询服务的配置信息。
qdescription # 查询服务的描述。
qfailure # 查询失败时服务执行的操作。
qfailureflag # 查询服务的失败操作标志
qsidtype # 查询服务的服务 SID 类型。
qprivs # 查询服务的所需权限。
qtriggerinfo # 查询服务的触发器参数。
qpreferrednode # 查询首选的服务 NUMA 节点。
delete # (从注册表)删除服务。
create # 创建服务(将其添加到注册表)。
control # 向服务发送控制。
sdshow # 显示服务的安全描述符。
sdset # 设置服务的安全描述符。
showsid # 显示相应于假定名称的 SID 字符串。
triggerinfo # 配置服务的触发器参数。
preferrednode # 设置首选的服务 NUMA 节点。
GetDisplayName # 获取服务的 DisplayName
GetKeyName # 获取服务的 ServiceKeyName。
EnumDepend # 枚举服务的依存关系。

收获园豆:10
商君治国安邦 | 园豆:137 (初学一级) | 2021-11-08 13:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册