public string GetProcessStatus(string serviceName)
        {
            string host         = Scope.Path.Server;
            string processId    = string.Empty;
            string processName  = string.Empty;
            string processState = string.Empty;
            string startMode    = string.Empty;
            ManagementObjectCollection queryCollection = null;

            try
            {
                ObjectQuery query = new ObjectQuery("SELECT ProcessId,PathName,State,StartMode,Status FROM Win32_Service WHERE name='" + serviceName + "'");
                ManagementObjectCollection queryColl = Query(query, WmiPath.Root);
                int mgmtObjCount = queryColl.Count;
                queryCollection = Query(query, WmiPath.Root);
                if (mgmtObjCount > 0)
                {
                    ManagementObjectCollection.ManagementObjectEnumerator en = queryCollection.GetEnumerator();
                    while (en.MoveNext())
                    {
                        ManagementObject obj = (ManagementObject)en.Current;
                        processId = obj.GetValue("ProcessId");
                        string pathName = obj.GetValue("PathName");
                        processState = obj.GetValue("State");
                        if (obj.GetValue("StartMode") != "")
                        {
                            startMode = obj.GetValue("StartMode");
                        }
                        string[] s       = new string[] { "\\" };
                        string[] arrPath = pathName.Split(s, StringSplitOptions.RemoveEmptyEntries);
                        foreach (string tempStr in arrPath)
                        {
                            if (tempStr.Contains(".exe"))
                            {
                                processName = tempStr.Substring(Int32.Parse("0"), tempStr.IndexOf(".exe") + Int32.Parse("4"));
                            }
                        }
                    }
                }
                else
                {
                    processState = Enum.GetName(typeof(ServiceReturnCode), ServiceReturnCode.ServiceNotFound);
                    processName  = serviceName;
                    startMode    = "ServiceNotFound";
                }
                return(string.Format("{0}|{1}|{2}", processName, processState, startMode));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public List <string> GetAllProcess()
        {
            ObjectQuery query = null;

            List <string> result = new List <string>();

            try
            {
                query = new ObjectQuery("SELECT ProcessID,PathName,State,StartMode,StartName FROM Win32_process");


                ManagementObjectCollection collection = Query(query, WmiPath.Root);
                ManagementObjectCollection.ManagementObjectEnumerator en = collection.GetEnumerator();

                while (en.MoveNext())
                {
                    ManagementObject obj = (ManagementObject)en.Current;

                    //ProcessID
                    string processId = obj.GetValue("ProcessId");

                    //processName from PathName
                    string   processName = string.Empty;
                    string   pathName    = obj.GetValue("PathName");
                    string[] s           = new string[] { "\\" };
                    string[] arrPath     = pathName.Split(s, StringSplitOptions.RemoveEmptyEntries);
                    foreach (string tempStr in arrPath)
                    {
                        if (tempStr.Contains(".exe"))
                        {
                            processName = tempStr.Substring(Int32.Parse("0"), tempStr.IndexOf(".exe") + Int32.Parse("4"));
                        }
                    }
                    //State
                    string state = obj.GetValue("State");

                    //StartMode
                    string startMode = obj.GetValue("StartMode");

                    //StartName
                    string startName = obj.GetValue("StartName");

                    result.Add(processId + "|" + processName);
                }
                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        void GetProcess(string serviceName, out string processId, out string processName)
        {
            string host = Scope.Path.Server;

            processId   = string.Empty;
            processName = string.Empty;

            try
            {
                ObjectQuery query = new ObjectQuery("SELECT ProcessId,PathName FROM Win32_Service WHERE name='" + serviceName + "'");
                ManagementObjectCollection queryCollection = Query(query, WmiPath.Root);
                ManagementObjectCollection.ManagementObjectEnumerator en = queryCollection.GetEnumerator();

                while (en.MoveNext())
                {
                    ManagementObject obj = (ManagementObject)en.Current;
                    processId = obj.GetValue("ProcessId");
                    string pathName = obj.GetValue("PathName");

                    string[] s       = new string[] { "\\" };
                    string[] arrPath = pathName.Split(s, StringSplitOptions.RemoveEmptyEntries);

                    foreach (string tempStr in arrPath)
                    {
                        if (tempStr.Contains(".exe"))
                        {
                            processName = tempStr.Substring(Int32.Parse("0"), tempStr.IndexOf(".exe") + Int32.Parse("4"));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #4
0
        private static SerialPortInfo GetInfoFromPnPEntity(ManagementObject queryObj)
        {
            var info = new SerialPortInfo();

            info.FullName     = queryObj.GetValue("Name");
            info.Name         = GetPortNameFromFullName(info.FullName);
            info.Description  = queryObj.GetValue("Description");
            info.Manufacturer = queryObj.GetValue("Manufacturer");
            info.Service      = queryObj.GetValue("Service");
            info.Status       = queryObj.GetValue("Status");
            info.ClassGuid    = queryObj.GetValue("ClassGuid");
            info.DeviceID     = queryObj.GetValue("DeviceID");

            return(info);
        }
        public string GetProcessDetailsByServiceName(string serviceName)
        {
            string host = Scope.Path.Server;

            string processId    = string.Empty;
            string processName  = string.Empty;
            string processState = string.Empty;
            string startMode    = string.Empty;


            try
            {
                ObjectQuery query = new ObjectQuery("SELECT ProcessId,PathName,State,StartMode,Status FROM Win32_Service WHERE name='" + serviceName + "'");
                ManagementObjectCollection queryCollection = Query(query, WmiPath.Root);
                ManagementObjectCollection.ManagementObjectEnumerator en = queryCollection.GetEnumerator();

                while (en.MoveNext())
                {
                    ManagementObject obj = (ManagementObject)en.Current;
                    processId = obj.GetValue("ProcessId");
                    string pathName = obj.GetValue("PathName");
                    processState = obj.GetValue("State");
                    if (obj.GetValue("StartMode") != "")
                    {
                        startMode = obj.GetValue("StartMode");
                    }

                    string[] s       = new string[] { "\\" };
                    string[] arrPath = pathName.Split(s, StringSplitOptions.RemoveEmptyEntries);

                    foreach (string tempStr in arrPath)
                    {
                        if (tempStr.Contains(".exe"))
                        {
                            processName = tempStr.Substring(Int32.Parse("0"), tempStr.IndexOf(".exe") + Int32.Parse("4"));
                        }
                    }
                }


                ObjectQuery queryProcess = null;

                if (!processId.Equals(string.Empty) && !processName.Equals(string.Empty))
                {
                    queryProcess = new ObjectQuery("SELECT * FROM Win32_Process WHERE name='" + processName + "' AND ProcessId=" + processId);
                }
                else if (processId.Equals(string.Empty) && !processName.Equals(string.Empty))
                {
                    queryProcess = new ObjectQuery("SELECT * FROM Win32_Process WHERE name='" + processName + "'");
                }
                else if (!processId.Equals(string.Empty) && processName.Equals(string.Empty))
                {
                    queryProcess = new ObjectQuery("SELECT * FROM Win32_Process WHERE ProcessId='" + processId + "'");
                }
                else
                {
                    throw new Exception("ProcessName and Processid are empty");
                }


                ManagementObjectCollection queryProcessCollection = Query(queryProcess, WmiPath.Root);

                foreach (ManagementObject process in queryProcessCollection)
                {
                    foreach (PropertyData propData in process.Properties)
                    {
                        //log.Info( string.Format( "\n ProcessProperties {0} : {1}", propData.Name.ToString(), propData.Value.ToString() ) );
                    }
                }
                return(string.Format("{0}|{1}|{2}", processName, processState, startMode));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }