Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取所有启动项目?_C# - Fatal编程技术网

C# 获取所有启动项目?

C# 获取所有启动项目?,c#,C#,好吧,我想我脑子里出了个屁,找不到出路了。我试图完成的是列出所有启动项(应用程序、进程等)并将它们显示在表单上(如msconfig.exe)。我认为这段代码可以做到: private List<StartupItems> getStartupItems() { try { ManagementClass cls = new ManagementClass("Win32_StartupCommand"); ManagementObject

好吧,我想我脑子里出了个屁,找不到出路了。我试图完成的是列出所有启动项(应用程序、进程等)并将它们显示在表单上(如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;
    }
private List getStartupItems()
{
尝试
{
ManagementClass cls=新的ManagementClass(“Win32_StartupCommand”);
ManagementObjectCollection coll=cls.GetInstances();
列表项=新列表();
foreach(coll中的ManagementObject对象)
{
项目。添加(
新项目
{
Command=obj[“Command”].ToString(),
Description=obj[“Description”].ToString(),
Name=obj[“Name”].ToString(),
Location=obj[“Location”].ToString(),
User=obj[“User”].ToString()
});
}
退货项目;
}
捕获(例外情况除外)
{
_message=ex.ToString();
_状态=假;
返回null;
}

但是,所有这些都是使用我的用户名启用的项目。我试图获取的是所有项目,无论是我的用户名还是系统,所有启用的项目以及所有禁用的项目(就像msconfig).我已经做了大量的搜索,但找不到与我使用的有任何不同的内容。

您考虑过直接从注册表中读取吗


另一种选择是在后台运行(它是autoruns的命令行版本)并读取其响应。

您考虑过直接从注册表读取吗

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