2009-08-24 6 views
1

私はここで脳のおならを持っていると思うし、それから自分の道を見つけることができません。私が達成しようとしているのは、すべての起動項目(アプリケーション、プロセスなど)を一覧表示し、フォームに表示することです(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

あなたはレジストリから直接読み取りを検討しましたか?

代わりに、autorunssc(コマンドラインバージョンの自動実行)をバックグラウンドで実行し、その応答を読み取ることもできます。

関連する問題