Exemple #1
0
        /// <summary>
        /// Returns a default instance of <see cref="ApplicationData"/> for the packaging of <see cref="executable"/>.
        /// </summary>
        /// <exception cref="ArgumentNullException"></exception>
        /// <exception cref="ArgumentException">
        /// An <see cref="ArgumentException"/> is thrown if the value specified for <paramref name="executable"/> is invalid.
        /// </exception>
        /// <param name="executable"></param>
        /// <returns></returns>
        public static ApplicationData GetDefaultApplicationData(string executable)
        {
            if (string.IsNullOrEmpty(executable))
            {
                throw new ArgumentNullException("executable");
            }
            ApplicationData data = new ApplicationData();

            data.Settings.RegistryEngineRuleCollection = RegistryRuleCollection.GetDefaultRuleCollection();
            data.Files.RootDirectory = new ApplicationFile(".");
            data.Files.Executable    = new ApplicationFile(executable);
            if (data.Files.Executable.Type != FileType.Executable)
            {
                throw new ArgumentException("The value specified for the executable is invalid.", "executable");
            }
            data.Files.RegistryDatabase = new ApplicationFile(_dbRegistry);
            return(data);
        }
Exemple #2
0
 public void BindDataSource(ApplicationData dataSource)
 {
     if (dataSource == null)
     {
         throw new ArgumentNullException("dataSource");
     }
     _data = dataSource;
     if (_data.Settings.FileSystemEngineRuleCollection == null)
     {
         _data.Settings.FileSystemEngineRuleCollection = FileSystemRuleCollection.GetDefaultRuleCollection();
     }
     if (_data.Settings.RegistryEngineRuleCollection == null)
     {
         _data.Settings.RegistryEngineRuleCollection = RegistryRuleCollection.GetDefaultRuleCollection();
     }
     _fileSystemEngineSettingsPageContent.BindRuleCollection(_data.Settings.FileSystemEngineRuleCollection, FileSystemRuleCollectionUpdateEventHandler);
     _registryEngineSettingsPageContent.BindRuleCollection(_data.Settings.RegistryEngineRuleCollection, RegistryRuleCollectionUpdateEventHandler);
     Enabled = true;
 }
Exemple #3
0
 /// <summary>
 /// Initializes a new instance of <see cref="VirtualProcessStartInfo"/>
 ///  based on the <see cref="ApplicationData"/> specified.
 /// </summary>
 /// <exception cref="ArgumentNullException">
 /// An <see cref="ArgumentNullException"/> is thrown if <paramref name="data"/> of one of its properties is null.
 /// </exception>
 /// <exception cref="ArgumentException">
 /// An <see cref="ArgumentException"/> is thrown if any of the properties of <paramref name="data"/> is of the wrong type.
 /// </exception>
 /// <param name="data">The data to base the process on.</param>
 /// <param name="workingDirectory">The working directory of the process to start.</param>
 public VirtualProcessStartInfo(ApplicationData data, ApplicationFile workingDirectory)
 {
     if (data == null ||
         data.Files.RegistryDatabase == null ||
         data.Files.Executable == null ||
         data.Files.RootDirectory == null)
     {
         throw new ArgumentNullException("data", "The data argument or one of its properties is null.");
     }
     if (workingDirectory == null)
     {
         throw new ArgumentNullException("workingDirectory", "The workingDirectory argument is null.");
     }
     if (data.Files.Executable.Type != FileType.Executable)
     {
         throw new ArgumentException("The ApplicationData specified contains an illegal value for the main executable.",
                                     "data");
     }
     if (data.Files.RegistryDatabase.Type != FileType.Database)
     {
         throw new ArgumentException(
                   "The ApplicationData specified contains an illegal value for the registry database.",
                   "data");
     }
     if (workingDirectory.Type != FileType.Directory)
     {
         throw new ArgumentException("The working directory specified is not a directory.",
                                     "workingDirectory");
     }
     _files = new ApplicationFiles
     {
         RegistryDatabase
             = new ApplicationFile(Path.Combine(workingDirectory.FileName, data.Files.RegistryDatabase.FileName)),
         Executable
             = new ApplicationFile(Path.Combine(workingDirectory.FileName, data.Files.Executable.FileName)),
         RootDirectory
             = new ApplicationFile(Path.Combine(workingDirectory.FileName, data.Files.RootDirectory.FileName))
     };
     _arguments                = "";
     _workingDirectory         = workingDirectory;
     _fileSystemRuleCollection = data.Settings.FileSystemEngineRuleCollection ?? FileSystemRuleCollection.GetDefaultRuleCollection();
     _registryRuleCollection   = data.Settings.RegistryEngineRuleCollection ?? RegistryRuleCollection.GetDefaultRuleCollection();
 }