程序为何卸载后还能自动启动?

时间:2022-09-04 16:05:59
1:C# 写了个程序,代码中包含有使程序自动启动的功能(也就是将程序写入到注册表中)。安装部署生成Setup安装包;
2:安装此安装包后,开机程序也能自动启动。但不知为何我卸载此程序后,开机程序还是能启动?(卸载后程序要用到的各种配置文件都被删除了)
3:想知道下为何会出现这种卸载后程序还能运行的原因,难道写入到注册表时,会将配置文件等也写入到注册表中?
4:如何我没有删除注册表中此程序的注册信息(键值),程序代码更新后重新安装此安装包,它会将之前的配置文件/键值等覆盖掉吗?也就是注册表中是最新代码中的配置文件吗?
5:代码中有实现每次开机自动将程序写入到注册表的功能。

14 个解决方案

#1


不好意思,各位,排版没弄好。

#2


你的程序没有卸载干净吧,如果程序可执行文件都不在了,我就不信还能启动

#3


没有删除Run健值下的程序路径,启动时肯定还是会去尝试启动,但是如果真的卸载干净了,那么就会出现个找不到文件的提示。

程序还能运行就是卸载不干净,或者你的程序运行时自我复制了一份在别的地方,并且在注册表里又写了另一个路径。

#4


引用 2 楼 johnliuyuan 的回复:
你的程序没有卸载干净吧,如果程序可执行文件都不在了,我就不信还能启动


我是从控制面板-程序和功能 中卸载的。

#5


.net 程序本来就是“copy 即可执行”的。

你所谓的安装,是给 windows 的启动菜单设置个菜单项,给桌面放一个快捷图标之类的事情吧?!

#6


.net 程序本质上不需要任何注册表之类的“壳”,很少有驱动版本兼容性故障,它基本上是 copy 即可。那么它的稳定性很高,生存能力很强,不像15年前的那些编程环境开发的程序那样脆弱。

你的程序为什么还能执行,你需要仔细检查代码保存的路径。总之是不要用15年前的观念来看到 .net 程序。

#7


好好检查你的启动路径。或者检查你代码里面的保存路径。检查路径下的对应目录。

#8


任务管理器找到进程,右键打开文件位置,找找哪里启动的,之后再去注册表搜下那个路径

#9


引用 4 楼 u010909114 的回复:
Quote: 引用 2 楼 johnliuyuan 的回复:

你的程序没有卸载干净吧,如果程序可执行文件都不在了,我就不信还能启动


我是从控制面板-程序和功能 中卸载的。

那你肯定没卸载干净

#10


引用 3 楼 wdgphc 的回复:
没有删除Run健值下的程序路径,启动时肯定还是会去尝试启动,但是如果真的卸载干净了,那么就会出现个找不到文件的提示。

程序还能运行就是卸载不干净,或者你的程序运行时自我复制了一份在别的地方,并且在注册表里又写了另一个路径。


你的意思就是我最好删除Run键值下的程序路径哦?

#11


你到你的安装路径下看看文件还在不在不就知道了

#12


引用 5 楼 sp1234 的回复:
.net 程序本来就是“copy 即可执行”的。

你所谓的安装,是给 windows 的启动菜单设置个菜单项,给桌面放一个快捷图标之类的事情吧?!



我是 VS的安装部署 生成的Setup安装包  ,然后安装这个程序的。

#13


引用 6 楼 sp1234 的回复:
.net 程序本质上不需要任何注册表之类的“壳”,很少有驱动版本兼容性故障,它基本上是 copy 即可。那么它的稳定性很高,生存能力很强,不像15年前的那些编程环境开发的程序那样脆弱。

你的程序为什么还能执行,你需要仔细检查代码保存的路径。总之是不要用15年前的观念来看到 .net 程序。


1:不知道你们说的代码保存的路径到底是什么东东,原代码?还是我的程序的安装路径?

#14


引用 11 楼 starfd 的回复:
你到你的安装路径下看看文件还在不在不就知道了


没有啊

#1


不好意思,各位,排版没弄好。

#2


你的程序没有卸载干净吧,如果程序可执行文件都不在了,我就不信还能启动

#3


没有删除Run健值下的程序路径,启动时肯定还是会去尝试启动,但是如果真的卸载干净了,那么就会出现个找不到文件的提示。

程序还能运行就是卸载不干净,或者你的程序运行时自我复制了一份在别的地方,并且在注册表里又写了另一个路径。

#4


引用 2 楼 johnliuyuan 的回复:
你的程序没有卸载干净吧,如果程序可执行文件都不在了,我就不信还能启动


我是从控制面板-程序和功能 中卸载的。

#5


.net 程序本来就是“copy 即可执行”的。

你所谓的安装,是给 windows 的启动菜单设置个菜单项,给桌面放一个快捷图标之类的事情吧?!

#6


.net 程序本质上不需要任何注册表之类的“壳”,很少有驱动版本兼容性故障,它基本上是 copy 即可。那么它的稳定性很高,生存能力很强,不像15年前的那些编程环境开发的程序那样脆弱。

你的程序为什么还能执行,你需要仔细检查代码保存的路径。总之是不要用15年前的观念来看到 .net 程序。

#7


好好检查你的启动路径。或者检查你代码里面的保存路径。检查路径下的对应目录。

#8


任务管理器找到进程,右键打开文件位置,找找哪里启动的,之后再去注册表搜下那个路径

#9


引用 4 楼 u010909114 的回复:
Quote: 引用 2 楼 johnliuyuan 的回复:

你的程序没有卸载干净吧,如果程序可执行文件都不在了,我就不信还能启动


我是从控制面板-程序和功能 中卸载的。

那你肯定没卸载干净

#10


引用 3 楼 wdgphc 的回复:
没有删除Run健值下的程序路径,启动时肯定还是会去尝试启动,但是如果真的卸载干净了,那么就会出现个找不到文件的提示。

程序还能运行就是卸载不干净,或者你的程序运行时自我复制了一份在别的地方,并且在注册表里又写了另一个路径。


你的意思就是我最好删除Run键值下的程序路径哦?

#11


你到你的安装路径下看看文件还在不在不就知道了

#12


引用 5 楼 sp1234 的回复:
.net 程序本来就是“copy 即可执行”的。

你所谓的安装,是给 windows 的启动菜单设置个菜单项,给桌面放一个快捷图标之类的事情吧?!



我是 VS的安装部署 生成的Setup安装包  ,然后安装这个程序的。

#13


引用 6 楼 sp1234 的回复:
.net 程序本质上不需要任何注册表之类的“壳”,很少有驱动版本兼容性故障,它基本上是 copy 即可。那么它的稳定性很高,生存能力很强,不像15年前的那些编程环境开发的程序那样脆弱。

你的程序为什么还能执行,你需要仔细检查代码保存的路径。总之是不要用15年前的观念来看到 .net 程序。


1:不知道你们说的代码保存的路径到底是什么东东,原代码?还是我的程序的安装路径?

#14


引用 11 楼 starfd 的回复:
你到你的安装路径下看看文件还在不在不就知道了


没有啊