Capacidad de los discos - 2






using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
using System.IO;

namespace EstadoDiscos
{
    public partial class Estado_Discos : Form
    {
        private long Total = 0;
        private long usado = 0;
        private long libre = 0;
        private float dibujo;
        private int angulo = 360;
        private Rectangle recto;
        LinearGradientBrush Rojo;
        LinearGradientBrush Azul;


        public Estado_Discos()
        {
            InitializeComponent();

        }
        private void dibujar_Paint(object sender, PaintEventArgs e)
        {
         recto = new Rectangle(1, 1, grafico.Width - 5, grafico.Height - 5);
     Rojo = new LinearGradientBrush(recto, Color.FromArgb(255, 5, 5), Color.FromArgb(255, 135, 135), 2000);
     Azul = new LinearGradientBrush(recto, Color.FromArgb(40, 22, 203), Color.FromArgb(111, 183, 215), 2000);
         e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;

            if (dibujo != 0)
            {
                e.Graphics.FillPie(Azul, recto, 0, dibujo);
                e.Graphics.FillPie(Rojo, recto, dibujo, angulo - dibujo);
            }
            else
            {
                e.Graphics.FillPie(Azul, recto, 0, 360);
            }

        }

        private long ConvertirbytesaMB(Int64 Bytes)
        {
            long MB = Bytes / 1048576;
            return MB;
        }
        private void leer_Click(object sender, EventArgs e)
        {
            listView1.Items.Clear();

            DriveInfo[] drives = DriveInfo.GetDrives();

            foreach (DriveInfo drive in drives)
            {
                listView1.Items.Add(drive.ToString());
                try
                {
                    usado = this.ConvertirbytesaMB(drive.TotalSize - drive.TotalFreeSpace);
                    libre = this.ConvertirbytesaMB(drive.TotalFreeSpace);
                    Total = this.ConvertirbytesaMB(drive.TotalSize);
                    listView1.Items[listView1.Items.Count - 1].BackColor = Color.Beige;
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add(libre.ToString());
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add(usado.ToString());
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add(Total.ToString());
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add("Listo");
                }
                catch
                {
                    listView1.Items[listView1.Items.Count - 1].BackColor = Color.Peru;
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add("No Instalado");
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add("No Instalado");
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add("No Instalado");
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add("No Preparado");
                }
            }
        }





        private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            try
            {

                libre = Int64.Parse(listView1.FocusedItem.SubItems[1].Text);
                Total = Int64.Parse(listView1.FocusedItem.SubItems[3].Text);
                usado = Total - libre;
                int Perlibre = (int)(((float)libre / (float)Total) * 100);
                etiquetaDiscos.Text = "Disco: " + listView1.FocusedItem.SubItems[0].Text;
                etiquetaEstado.Text = "Estado: " + listView1.FocusedItem.SubItems[4].Text;
                etiquetaLibre.Text = libre.ToString() + " MB (" + Perlibre.ToString() + "% Libre)";
                etiquetaUsado.Text = usado.ToString() + " MB (Usado)";
                dibujo = 360f * libre / Total;
                grafico.Invalidate();
            }
            catch
            {
                etiquetaDiscos.Text = "Disco: " + listView1.FocusedItem.SubItems[0].Text;
                etiquetaEstado.Text = "Estado: No Listo";
                etiquetaLibre.Text = "0 MB (Desconocido)";
                etiquetaUsado.Text = "0 MB (Desconocido)";
                dibujo = 0;
                grafico.Invalidate();
            }
        }
    }
}

// código original de Sajad KK





No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.