Example #1
0
 private string GetRegistryPath(Session session, RegistryRoot root, string key, string name)
 {
     bool allUsers = session.EvaluateCondition("ALLUSERS = 1", true);
     string rootName = "????";
     switch(root)
     {
         case RegistryRoot.LocalMachine : rootName = "HKLM"; break;
         case RegistryRoot.CurrentUser  : rootName = "HKCU"; break;
         case RegistryRoot.Users        : rootName = "HKU"; break;
         case RegistryRoot.UserOrMachine: rootName = (allUsers ? "HKLM" : "HKCU"); break;
         case RegistryRoot.ClassesRoot  : rootName = (allUsers ? @"HKLM\Software\Classes" : @"HKCU\Software\Classes"); break;
         // TODO: Technically, RegistryRoot.ClassesRoot should be under HKLM on NT4.
     }
     if(name.Length == 0) name = "(Default)";
     if(name == "+" || name == "*") name = "";
     else name = " : " + name;
     using(Record formatRec = new Record(0))
     {
         formatRec[0] = String.Format(@"{0}\{1}{2}", rootName, key, name);
         return session.FormatRecord(formatRec);
     }
 }