获取所有启动项目?

时间:2009-08-24 16:02:47

标签: c#

好吧,我想我在这里有一个大脑放屁,无法找到我的出路。我想要完成的是列出所有启动项(应用程序,进程等)并将它们显示在表单上(就像你使用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一样)。我做了大量的搜索,找不到与我正在使用的任何不同的东西。

1 个答案:

答案 0 :(得分:1)

您是否考虑直接从注册表中阅读?

另一种方法是在后台运行autorunssc(它是autoruns的命令行版本)并阅读其响应。