Example #1
0
        public ServiceRecoveryPage(IPlugInContainer container, ServiceManagerPlugin plugin, string serviceName)
            : base()
        {
            InitializeComponent();

            this.pageID      = "ServiceRecoveryPage";
            this.serviceName = serviceName;
            this._plugin     = plugin;
        }
        public override void SetPlugInInfo(IPlugInContainer container, IPlugIn pi, LACTreeNode treeNode, LWTreeView lmctreeview, CServerControl sc)
        {
            plugin = pi as ServiceManagerPlugin;

            base.SetPlugInInfo(container, pi, treeNode, lmctreeview, sc);
            bEnableActionMenu = false;
            ShowHeaderPane(true);

            Refresh();
        }
Example #3
0
        public GeneralPropertyPage(ServicePropertiesDlg parentDlg, IPlugInContainer container, ServiceManagerPlugin plugin, string serviceName)
        {
            InitializeComponent();

            this.pageID = "GeneralPropertyPage";
            SetPageTitle("General");
            this.serviceName = serviceName;
            this._plugin     = plugin;
            this._parentDlg  = parentDlg;
        }
Example #4
0
        public ServicePropertiesDlg(IPlugInContainer container, StandardPage parentPage,
                                    ServiceManagerPlugin plugin, string serviceName)
            : base(container, parentPage)
        {
            InitializeComponent();

            this.Text  = serviceName;
            _container = container;
            _plugin    = plugin;

            InitializePages(serviceName);
        }
        public override void Refresh()
        {
            base.Refresh();

            if (plugin == null)
            {
                plugin = pi as ServiceManagerPlugin;
            }

            this.lblCaption.Text = plugin.GetPlugInNode().Text;

            if (plugin.IsConnectionSuccess)
            {
                if (Configurations.currentPlatform == LikewiseTargetPlatform.Windows)
                {
                    if (!plugin.Do_LogonSCManager())
                    {
                        Logger.Log("Service Control Manager.Refresh(): Failed to authenticate the specified user");
                        return;
                    }
                }
            }
            else
            {
                return;
            }

            if (treeNode.Nodes.Count == 0 || treeNode.IsModified)
            {
                if (Configurations.currentPlatform == LikewiseTargetPlatform.Windows)
                {
                    Dictionary <string, string[]> services = ServiceManagerWindowsWrapper.EnumManagementServices();
                    if (services != null && services.Count != 0)
                    {
                        foreach (string name in services.Keys)
                        {
                            ListViewItem lvItem = new ListViewItem(services[name]);
                            lvItem.Tag = name;
                            lvService.Items.Add(lvItem);
                        }
                    }
                }
                else
                {
                    string[] sServiceEnum = ServiceManagerInteropWrapper.ApiLwSmEnumerateServices();
                    if (sServiceEnum != null)
                    {
                        foreach (string name in sServiceEnum)
                        {
                            string serviceState = string.Empty;
                            IntPtr pHandle      = ServiceManagerInteropWrapper.ApiLwSmAcquireServiceHandle(name);
                            if (pHandle != IntPtr.Zero)
                            {
                                ServiceManagerApi.LW_SERVICE_INFO   serviceInfo   = ServiceManagerInteropWrapper.ApiLwSmQueryServiceInfo(pHandle);
                                ServiceManagerApi.LW_SERVICE_STATUS serviceStatus = ServiceManagerInteropWrapper.ApiLwSmQueryServiceStatus(pHandle);

                                switch (serviceStatus.state)
                                {
                                case ServiceManagerApi.LW_SERVICE_STATE.LW_SERVICE_STATE_DEAD:
                                    serviceState = "Dead";
                                    break;

                                case ServiceManagerApi.LW_SERVICE_STATE.LW_SERVICE_STATE_PAUSED:
                                    serviceState = "Paused";
                                    break;

                                case ServiceManagerApi.LW_SERVICE_STATE.LW_SERVICE_STATE_RUNNING:
                                    serviceState = "Running";
                                    break;

                                case ServiceManagerApi.LW_SERVICE_STATE.LW_SERVICE_STATE_STARTING:
                                    serviceState = "Starting";
                                    break;

                                case ServiceManagerApi.LW_SERVICE_STATE.LW_SERVICE_STATE_STOPPED:
                                    serviceState = "Stopped";
                                    break;

                                case ServiceManagerApi.LW_SERVICE_STATE.LW_SERVICE_STATE_STOPPING:
                                    serviceState = "Stopping";
                                    break;
                                }

                                ListViewItem lvItem = new ListViewItem(new string[] { name,
                                                                                      serviceInfo.pwszDescription,
                                                                                      serviceState,
                                                                                      (serviceInfo.bAutostart)?"Automatic": "Manual",
                                                                                      "root" });
                                lvItem.Tag = name;
                                lvService.Items.Add(lvItem);

                                ServiceManagerInteropWrapper.ApiLwSmReleaseServiceHandle(pHandle);
                            }
                        }
                    }
                }
            }

            lvService.Columns[lvService.Columns.Count - 1].Width = 200;
        }