Jump to content
Sign in to follow this  
skiller10

Graficos

Recommended Posts

skiller10

Hey,

Alguém sabe como fazer gráficos em c#, basicamente a minha ideia era fazer uns graficos que fossem vendo a performance do CPU e o uso da RAM  e do HD. Alguem dica?


"Eu acredito que a vida está constantemente nos testando em nosso nível de confiança, e a vida tem grande recompensa reservada àqueles que demonstram uma confiança sem fim para agir até conseguir. Este nível de resolução pode mover montanhas, mas ele tem de ser constante e consistente. Tão simples quanto isso possa soar, ainda é o denominador comum que separa aqueles que vivem seus sonhos dos que vivem simplesmente.."

Share this post


Link to post
Share on other sites
skiller10

tens por aí alguns tutoriais fixes?


"Eu acredito que a vida está constantemente nos testando em nosso nível de confiança, e a vida tem grande recompensa reservada àqueles que demonstram uma confiança sem fim para agir até conseguir. Este nível de resolução pode mover montanhas, mas ele tem de ser constante e consistente. Tão simples quanto isso possa soar, ainda é o denominador comum que separa aqueles que vivem seus sonhos dos que vivem simplesmente.."

Share this post


Link to post
Share on other sites
skiller10

Eu queria algo que ficasse inserido no programa mesmo, dxcharts for wpf, acho que é isto que preciso :P

Ve o topico que criei na area de wpf e ve se me sabes ajudar sff


"Eu acredito que a vida está constantemente nos testando em nosso nível de confiança, e a vida tem grande recompensa reservada àqueles que demonstram uma confiança sem fim para agir até conseguir. Este nível de resolução pode mover montanhas, mas ele tem de ser constante e consistente. Tão simples quanto isso possa soar, ainda é o denominador comum que separa aqueles que vivem seus sonhos dos que vivem simplesmente.."

Share this post


Link to post
Share on other sites
cffm

Boas

Tens o controlo Chart (pelo menos no Visual C# 2010 express). Depois podes definir todos os tipos de gráficos, desde os de barras, circulares, dispersão, área, etc.

O funcionamento é simples, apenas lhe passas (no caso de um gráfico de barras 2D), um array com valores de xx e outro de yy)

Exemplo:

chart1.Series[0].Points.DataBindXY(array_xx, array_yy);

Share this post


Link to post
Share on other sites
skiller10

obrigado ;D

já consegui fazer o CPU usage, mas o RAM usage está-me a causar uns problemas, consigo ir buscar a quantidade de memória disponível, mas precisava de conseguir saber a memória total do sistema para poder ter a % de uso, andei a procurar e já vi várias pessoas com esse problema, falavam da função GlobalMemoryStatusEx mas não funcionou, secalhar implementei mal :s Alguém me pode ajudar?


"Eu acredito que a vida está constantemente nos testando em nosso nível de confiança, e a vida tem grande recompensa reservada àqueles que demonstram uma confiança sem fim para agir até conseguir. Este nível de resolução pode mover montanhas, mas ele tem de ser constante e consistente. Tão simples quanto isso possa soar, ainda é o denominador comum que separa aqueles que vivem seus sonhos dos que vivem simplesmente.."

Share this post


Link to post
Share on other sites
euaccount

http://blogs.cs.st-andrews.ac.uk/angus/2008/11/net-performance-counters-monitoring-resource-utilization/

Decidi procurar um bocado por isto talvez desenvolva um gadget de monitorização de recursos ja que nao gosto de os ter separados

Então estive a procura aqui esta o que achei

http://blogs.msdn.com/b/jgalasyn/archive/2006/05/09/594037.aspx

Estive tambem a experimentar um bocado e tambem ja tenho o codigo para obter a % de cpu usada e Mb de Ram livres

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics; 

namespace BattleStationHQ
{

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        PerformanceCounter cpuCounter;
        PerformanceCounter ramCounter;

        private void Form1_Load(object sender, EventArgs e)
        {
            cpuCounter = new System.Diagnostics.PerformanceCounter();
            cpuCounter.CategoryName = "Processor";
            cpuCounter.CounterName = "% Processor Time";
            cpuCounter.InstanceName = "_Total";

            ramCounter = new System.Diagnostics.PerformanceCounter("Memory", "Available MBytes");
        }

         public string getCurrentCpuUsage()
            {
              return cpuCounter.NextValue()+"%";
            }

         public string getAvailableRAM()
            {
             return ramCounter.NextValue() + "Mb";
            }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text = getCurrentCpuUsage();
            textBox2.Text = getAvailableRAM();
        }			 
    }
}

Para a rede

http://www.codeproject.com/KB/system/networkmonitorl.aspx

Experimenta isto talvez de para resolver o problema da RAM

http://stackoverflow.com/questions/105031/c-how-do-you-get-total-amount-of-ram-the-computer-has

Senão funcionar pode-se fazer sempre umas aldrabices

Obter a memoria usada + memoria livre = total

a checkBox deve ser igual ao c#:

checkBox1.Checked = true; ou false

Share this post


Link to post
Share on other sites
skiller10

ja resolvi o problema da listbox com checkbox items, a única maneira foi guardar os objectos todos da lista num array, ir buscando cada posiçao, que devolve uma string com todas as infos da checkbox item, e ver se a string contem "ischecked:true".

Tive a ver e nenhum dos links me dá a solução que preciso :s Sei obter a memória disponível, sabes como obter a memória em uso?


"Eu acredito que a vida está constantemente nos testando em nosso nível de confiança, e a vida tem grande recompensa reservada àqueles que demonstram uma confiança sem fim para agir até conseguir. Este nível de resolução pode mover montanhas, mas ele tem de ser constante e consistente. Tão simples quanto isso possa soar, ainda é o denominador comum que separa aqueles que vivem seus sonhos dos que vivem simplesmente.."

Share this post


Link to post
Share on other sites
euaccount

o 1º site tem tudo o que precisas basta ler

inclusive um link para a microsoft

http://technet.microsoft.com/pt-pt/library/cc960240%28en-us%29.aspx

Exemplo:

ramCounter = new System.Diagnostics.PerformanceCounter("Memory", "% Committed Bytes In Use");

Counter Name

% Committed Bytes In Use

Description

shows the ratio of Memory\ Committed Bytes to the Memory\ Commit Limit. Committed memory is physical memory in use for which space has been reserved in the paging file so that it can be written to disk. The commit limit is determined by the size of the paging file. If the paging file is enlarged, the commit limit increases, and the ratio is reduced.

Counter Type

PERF_RAW_FRACTION

Share this post


Link to post
Share on other sites
euaccount

Achei uma aplicação fixe

tou ainda a tentar descobrir como funciona e o potencial

http://www.codeproject.com/KB/cs/nitinsysteminfo.aspx

Entao é o seguinte esta é a parte do codigo que faz a pesquisa eu alterei a pesquisa para retornar apenas o "TotalPhysicalMemory" que é total da memoria ram ele faz a pesquisa por sql...(ao que parece, pelos menos o codigo é edentico) a tabela desse campo é Win32_ComputerSystem (http://msdn.microsoft.com/en-us/library/aa394102%28v=vs.85%29.aspx)

o valor é devolvido em bytes

public ArrayList GetStuff(string queryObject)
	{
		ManagementObjectSearcher searcher;
		int i = 0;
		ArrayList hd = new ArrayList();
		try
		{
                searcher = new ManagementObjectSearcher("SELECT TotalPhysicalMemory FROM Win32_ComputerSystem"/* + queryObject*/);
			foreach(ManagementObject wmi_HD in searcher.Get())
			{
				i++;
				PropertyDataCollection searcherProperties = wmi_HD.Properties;
				foreach (PropertyData sp in searcherProperties) 
				{
					hd.Add(sp);
				}
			}
		}
		catch(Exception ex)
		{
			MessageBox.Show(ex.ToString());
		}
		return hd;
	}

e pronto a partir destas classes WMI e ja vi que existem mais, a vida tornou-se muito mais facil

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.