Exemplo n.º 1
0
        private void InitDevicesManager()
        {
            List <Device> allDevices = new DeviceProcess().ListAll();

            foreach (var item in allDevices)
            {
                AvailableDevices.Add(item.Name, item.Quantity);
                LeasedDevices.Add(item.Name, 0);
            }
        }
        public List <DeviceProcess> GetDeviceProcessesList()
        {
            List <Exception>           exceptions           = new List <Exception>();
            List <ManagementException> managementExceptions = new List <ManagementException>();
            List <DeviceProcess>       deviceProcesses      = new List <DeviceProcess>();

            try
            {
                Process[] processes = Process.GetProcesses();

                foreach (Process p in processes)
                {
                    int    pid    = -1;
                    string pname  = "n/a";
                    double memory = -1;
                    double cpu    = -1;
                    double bs     = -1;
                    double br     = -1;
                    double net    = -2;
                    double disk   = -2;
                    bool   isapp  = false;

                    if (p.MainWindowHandle != null)
                    {
                        isapp = p.MainWindowHandle != IntPtr.Zero;
                    }

                    ManagementObjectSearcher mos = null;
                    try
                    {
                        mos = new ManagementObjectSearcher("" +
                                                           "SELECT * FROM Win32_PerfFormattedData_PerfProc_Process WHERE IDProcess = " + p.Id);
                    }
                    catch (ManagementException ex)
                    {
                        pid    = -1;
                        pname  = "n/a";
                        memory = -1;
                        cpu    = -1;
                        bs     = -1;
                        br     = -1;
                        managementExceptions.Add(ex);
                    }
                    catch (Exception ex)
                    {
                        pid    = -1;
                        pname  = "n/a";
                        memory = -1;
                        cpu    = -1;
                        bs     = -1;
                        br     = -1;
                        exceptions.Add(ex);
                    }

                    try { pid = p.Id; }
                    catch { }

                    try { pname = p.ProcessName; }
                    catch { }

                    NetworkTraffic networkTraffic = null;
                    try { networkTraffic = new NetworkTraffic(p.Id); }
                    catch (Exception ex) { bs = -1; br = -1; exceptions.Add(ex); }

                    try { if (networkTraffic != null)
                          {
                              bs = networkTraffic.GetBytesSent();
                          }
                    }
                    catch (Exception ex) { bs = -1; exceptions.Add(ex); }
                    try { if (networkTraffic != null)
                          {
                              br = networkTraffic.GetBytesReceived();
                          }
                    }
                    catch (Exception ex) { br = -1; exceptions.Add(ex); }

                    try
                    {
                        ManagementObjectCollection col = mos.Get();
                        foreach (ManagementObject obj in col)
                        {
                            try { memory = p.PrivateMemorySize64; }
                            catch (ManagementException ex) { memory = -1; managementExceptions.Add(ex); }
                            catch (Exception ex) { memory = -1; exceptions.Add(ex); }

                            try { cpu = Convert.ToDouble(obj["PercentProcessorTime"]) / Environment.ProcessorCount; }
                            catch (ManagementException ex) { cpu = -1; managementExceptions.Add(ex); }
                            catch (Exception ex) { cpu = -1; exceptions.Add(ex); }
                        }
                    }
                    catch (ManagementException ex)
                    {
                        memory = -1;
                        cpu    = -1;
                        managementExceptions.Add(ex);
                    }
                    catch (Exception ex)
                    {
                        memory = -1; cpu = -1;
                        exceptions.Add(ex);
                    }

                    DeviceProcess deviceProcess = new DeviceProcess
                    {
                        BytesReceived     = br,
                        BytesSent         = bs,
                        CpuUtil           = cpu,
                        Description       = "",
                        IsApplication     = isapp,
                        Name              = pname,
                        PrivateMemorySize = memory / 1024 / 1024,
                        ProcessId         = pid,
                        TotalBytes        = br + bs,
                        DiskUtil          = disk,
                        NetUtil           = net
                    };
                    deviceProcesses.Add(deviceProcess);
                }
                return(deviceProcesses);
            }
            catch (Exception)
            {
                return(null);
            }
        }
 public void Process(DeviceProcess process)
 {
     deviceInterface.Process(process);
 }
Exemplo n.º 4
0
 void IDevice.Process(DeviceProcess process)
 {
 }