Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-07-2006
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 20
OSKR Va por buen camino
Porcentaje de uso del CPU

Aqi está el codigo en Builder, no se si ya alguien lo habia publicado aqi, en otros foros ..o no se....crei ver algo por ahi pero en linux....
Código:
#include <Winbase.h>
#include <stdio.h>
#pragma hdrstop
#pragma argsused
#define _WIN32_WINNT 0x0501
void Error(HANDLE Handle)
{ LPVOID lpMsgBuf;
  FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,NULL,GetLastError(),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),(LPTSTR) &lpMsgBuf,0,NULL);
  MessageBox( NULL, (char *)lpMsgBuf,"GetLastError", MB_OK|MB_ICONINFORMATION);
  LocalFree( lpMsgBuf );
  FreeLibrary(Handle);
  exit(0);
}

int main(int argc, char* argv[])
{ int i=10;
  bool (*GST)(FILETIME *,FILETIME *,FILETIME *);
  __int64 ITn=0,ITv=0,KTn=0,KTv=0,UTn=0,UTv=0;
  HANDLE Handle=LoadLibrary("kernel32.dll");
  if(!Handle)
    return 1;
  GST=(bool (*)(FILETIME *,FILETIME *,FILETIME *))GetProcAddress(Handle,"GetSystemTimes");
  if(!GST)
    return 1;
  while((--i)!=0)
  { FILETIME  IT,KT,UT;
    try
    { bool res=GST(&IT,&KT,&UT);
      Sleep(1500);
      if(!res)
        Error(Handle);
      memcpy(&UTn,&UT,sizeof(FILETIME));
      memcpy(&ITn,&IT,sizeof(FILETIME));
      memcpy(&KTn,&KT,sizeof(FILETIME));
    }
    catch(Exception &Ex)
    { printf("Puta excepcion en la segunda\n");
    }
    __int64 Deno=((KTn-KTv)+(UTn-UTv));
    if( Deno==0)
      printf("0\n");
    else
      { double Prcntj=((double)Deno-(ITn-ITv))/Deno*100;
        printf("%f\n",Prcntj);
      }
    KTv=KTn;
    UTv=UTn;
    ITv=ITn;
  }
  FreeLibrary(Handle);
  return 0;
}
oooooopppppsss no puedo creerlo!!! ahora la etiqeta si respeta el tabulado!!!! no puede ser!!!! .
Una cosita....a veces se tira una excepción sin motivo aparente, no se xq.. si alguien puede y qiere corregirlo.....q lo haga.....esto es oarte de un agente SNMP q se esta haciendo aqi en la Univ. aún estoy pariendo con tomar la temperatura del procesador, ya se como pero por ser WMI se hace casi imposible
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
  #2  
Antiguo 12-07-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No me queda muy claro si lo que pretendías era compartir esas rutinas,... es decir, si no sería mejor que el código fuente (y los comentarios pertinentes) que propones estuviera en el apartado de trucos... ¿o es que hay algún problema y es eso lo que te precupa, la solución?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 13-07-2006
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 20
OSKR Va por buen camino
Pues de solución....no se.... la vaina en cuestión funciona...de hecho toma mejores muestras q la del administrador de tareas aunqe yo creo q este ultimo no se deja engañar tan fácil y toma muestras en otros intervalos, por eso ahi se ve mas estable q en el q puse....lo q no entiendo muy bien es xq la funcion q cargo a veces qeda algo así como "invalidada" y era necesario cargar de nuevo el kernel32, lo ignoro, si alguien qiere pues...pongalo en el de trucos..traduzcanlo a delphi tambien si qieren....no hay peo....estoy muy atareado con esa vaina del SNMP y me qeda muy poco tiempo de vida en la universidad, por eso no se les extrañe si de repente ven algun tema no correspondiente al foro donde este publicado , es por el apuro....
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Incrementa el porcentaje y no imprime. zugazua2001 Impresión 1 19-05-2006 08:59:19
Ancho de columnas en StringGrid en porcentaje andre OOP 3 17-06-2004 14:36:54
Porcentaje en un ProgressBar silviodp OOP 1 15-04-2004 06:41:41
mostrar porcentaje con CGauge del texto de un Edit garth C++ Builder 3 26-03-2004 12:23:25
Matemáticas: Calcular porcentaje DarkByte Varios 9 01-02-2004 17:42:08


La franja horaria es GMT +2. Ahora son las 11:52:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi