예제 #1
0
        internal static object Execute(Command command, string parameter)
        {
            try
            {
                string wmiServer, wmiNamespace, wmiClassname, wmiInstance;

                switch (command)
                {
                case Command.ReloadConfiguration:
                    ConfigManager.GetInstance().ReloadConfiguration();
                    return(null);

                case Command.GetWMIInstancesOfClass:
                    wmiServer    = parameter.Split(Separator)[0];
                    wmiClassname = parameter.Split(Separator)[1];
                    return(WMIWrapper.GetInstance().GetWMIInstancesOfClass(wmiServer, wmiClassname));

                case Command.GetWMIInstanceAsXML:
                    wmiServer    = parameter.Split(Separator)[0];
                    wmiClassname = parameter.Split(Separator)[1];
                    wmiInstance  = parameter.Split(Separator)[2];
                    return(WMIWrapper.GetInstance().GetWMIInstanceAsXML(wmiServer, wmiClassname, wmiInstance));

                case Command.GetWMIPropertiesOfInstance:
                    wmiServer    = parameter.Split(Separator)[0];
                    wmiClassname = parameter.Split(Separator)[1];
                    wmiInstance  = parameter.Split(Separator)[2];
                    return(WMIWrapper.GetInstance().GetWMIPropertiesOfInstance(wmiServer, wmiClassname, wmiInstance));

                case Command.GetWMIMethodsOfClass:
                    wmiServer    = parameter.Split(Separator)[0];
                    wmiClassname = parameter.Split(Separator)[1];
                    wmiInstance  = parameter.Split(Separator)[2];
                    return(WMIWrapper.GetInstance().GetWMIMethodsOfInstance(wmiServer, wmiClassname, wmiInstance));

                case Command.GetWMIClassesInNamespace:
                    wmiServer    = parameter;
                    wmiNamespace = ConfigManager.GetInstance().WMINamespace;
                    return(WMIWrapper.GetInstance().GetWMIClassesInNamespace(wmiServer, wmiNamespace));

                default:
                    MessageBox.Show("Unknown command", "ERROR", MessageBoxButton.OK, MessageBoxImage.Error);
                    return(new List <string>());
                }
            }
            catch (ConfigException cex)
            {
                MessageBox.Show(
                    "Configuration error. Fix '" + ConfigManager.DefaultProvidersFileName + "' file and reload it: " +
                    cex.Message, "ERROR", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "ERROR", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            return(new List <string>());
        }
예제 #2
0
        public static WMIWrapper GetInstance()
        {
            if (_instance == null)
            {
                lock (Lock)
                {
                    if (_instance == null)
                    {
                        _instance = new WMIWrapper();
                    }
                }
            }

            return(_instance);
        }