好吧,我想我是脑子进水了,找不到解脱的方法。我试图完成的是列出所有启动项(应用程序、进程等),并在表单上显示它们(就像您使用msconfig.exe获得的一样)。我认为这段代码可以做到这一点:
private List<StartupItems> getStartupItems()
{
try
{
ManagementClass cls = new ManagementClass("Win32_StartupCommand");
ManagementObjectCollection coll = cls.GetInstances();
List<StartupItems> items = new List<StartupItems>();
foreach (ManagementObject obj in coll)
{
items.Add(
new StartupItems
{
Command = obj["Command"].ToString(),
Description = obj["Description"].ToString(),
Name = obj["Name"].ToString(),
Location = obj["Location"].ToString(),
User = obj["User"].ToString()
});
}
return items;
}
catch (Exception ex)
{
_message = ex.ToString();
_status = false;
return null;
}但所有得到的都是使用我的用户名启用的。我尝试获取的是所有项,无论是我的用户名还是系统,所有启用的项和所有禁用的项(就像msconfig一样)。我已经做了大量的搜索,但找不到任何与我正在使用的内容真正不同的东西。
发布于 2009-08-24 16:31:13
您是否考虑过直接从注册表中读取数据?
一种替代方法是在后台运行autorunssc (它是autoruns的命令行版本)并读取其响应。
https://stackoverflow.com/questions/1323254
复制相似问题