使用Windows API获取所有Windows启动过程的最佳方法是什么?
我知道我需要查看启动文件夹和某些注册表项。 但是如何使用Windows API呢? 我很想知道Windows XP和Vista。 谢谢你的时间。
没有单一的API可以获取系统启动时运行的所有程序。 考虑Autoruns展示的所有事情。 对该程序的更新有时会允许它显示新的程序类,并且由于这些是程序的更新而不是操作系统,显然不是某些API正在改变以包含更多内容。 相反,它是逐渐扩展其“自动运行程序”概念的程序。
找出您希望考虑的“启动过程”,然后您可以确定可以组合使用哪些API或其他技术来找出所有这些过程。
要查看的地方包括:
- “运行” 注册表项 ,就像AJ提到的那样 。
- “启动”菜单,由与
ShGetFolderPath
使用的各种常量及其一些相关函数给出。 - 计划在登录时运行的任务 。
- 服务 。
每个项目符号点都包含至少一个指向MSDN页面的链接,该链接应该可以帮助您入门。 如果您需要更多,请考虑提出一些更具体的问题。
我不确定这样的API是否存在。 不过你可以编写一个函数来做到这一点。
启动进程名称和位置存储在注册表中的以下位置:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
您可以编写小函数来打开上面的注册表并阅读启动过程的详细信息。