装软件为何还要重启?软件安装过程全回放
安装软件的过程,其实就是文件解压和复制的过程。拷贝文件袋额过程中,大部分软件都开发自己独特的功能,这些功能多以DLL动态链接库的形式出现,随安装程序包一起提供。有的软件把这些DLL文件放在自身安装的目录下,另外不少软件则把这些DLL文件拷贝到系统目录下,一般为"\Windows\System"(98系统) "\Winnt\System32"(2000/2003系统)或"\Windows\System32"(XP系统)中。把DLL文件放在自身目录中的好处是,重装系统后软件不用安装也能使用,比如Foxmail,重装系统后原来的Foxmail依然能使用(如果原程序被覆盖的话那就另当别论了)。
-----------------------------------------------------------------------------------------------------------------------------------------------
重启解密1:DLL变更会重启一些软件需要向系统目录中写入DLL文件,但如果系统目录中已经有同名的DLL文件并正被系统调用,则系统会拒绝写入。在Windows98中,当安装程序检测到需要写入的DLL文件正在使用时,会把要写入的DLL文件临时改为别的文件名,然后再Wininit.ini加入一个改写项,并要求重新启动系统,重启后在进入Windows图形界面之前,Wininit.exe会检测Wininit.ini 并执行里面的操作,这样就把旧版本的DLL文件替换掉了。Windows2K/XP中替换文件的方法不同,单元里差不多。
-----------------------------------------------------------------------------------------------------------------------------------------------
文件拷贝完成之后,DLL文件必须将注册信息写进注册表才能正常使用
【如果DLL文件没有注册,系统注册表中就没有这个DLL文件信息.那么等到调用的时候,因为不知道这个DLL文件的位置,只能报告没有这个DLL.所以这时候就需要注册DLL了.WINDOWS系统的DLL不用注册.因为安装时已经注册好了.】
有的软件(Foxmail)在安装时不写注册表,但是启动后会检测相关的注册表项,如果检测不到的话就会重新写入一次。
-----------------------------------------------------------------------------------------------------------------------------------------------
重启解密2:注册表变更会重启
注册表的用法可以是动态也可以是静态的。某些注册表项是被一次读入并且知道系统重新启动才会再次读取;另一些注册表项,则是每次被引用的时候都会被读取一次。系统数据通常都是静态的,所以如果安装软件对系统相关的注册表项做了改动,必须重启才能生效。
-----------------------------------------------------------------------------------------------------------------------------------------------
安装过程到这里基本完成差不多了,接下来是建立程序组和快捷方式,还可能会有其它操作,比如有些程序安装时先把自己解压到临时目录中,等安装结束后就会做一些善后处理,将临时文件夹中的安装文件清除等。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现