如果我们在 中设置了一个项目HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
。那么该项目将随系统启动。例如这是我当前的环境:
看那个免费下载管理器,它为 Windows 操作系统提供了两个参数:
“C:\Program Files\Softdeluxe\Free Download Manager\fdm.exe”--隐藏
但我想知道这两个参数是为系统上的哪个程序提供的?我的意思是当我的电脑启动时,我的系统上运行着哪些命令?在我的想象中,运行的命令可能是这样的:
program.exe "C:\Program Files\Softdeluxe\Free Download Manager\fdm.exe" --hidden
但我知道什么是program.exe
。如果我知道,那么我就可以手动模拟系统的自动运行。
答案1
您问的是“Windows 如何知道如何运行 exe 文件?”
答案可以在注册表的其他地方找到,但这并不能真正让您满意,因为处理 .exe 文件是操作系统的默认功能。确实需要有正确的注册表项,而且有些病毒会重置此信息并严重破坏系统,但从根本上讲,每个操作系统都需要能够运行为其编写的程序,因此此功能已内置到每个操作系统中。并非每个操作系统都使用 .exe 文件,这些只是 Windows 中最常用的可执行文件格式。
如果您查看注册表 HKCR 配置单元中定义的处理程序 EXEFILE,您会发现 Open 键的数据"%1" %*
基本上意味着“它自行运行并允许任何自己的参数”。
答案2
处理注册表项的 Windows 组件Run
无法供用户调用。启动完成后,也无法模拟启动环境。
但是,如果密钥上的命令Run
正确,它应该在启动期间完全相同地运行。
通过在启动环境中运行对其进行测试后,测试其在启动期间工作情况的唯一方法是重新启动。
答案3
您的假设是错误的。Windows 不会执行此操作:
program.exe "C:\Program Files\Softdeluxe\Free Download Manager\fdm.exe" --hidden
其中program.exe
将执行的程序是和"C:\Program Files\Softdeluxe\Free Download Manager\fdm.exe"
,--hidden
是两个参数。
Windows 执行此操作:
"C:\Program Files\Softdeluxe\Free Download Manager\fdm.exe" --hidden
"C:\Program Files\Softdeluxe\Free Download Manager\fdm.exe"
程序在哪里执行,--hidden
是它的单个参数。
无需将其包装在额外的程序中。