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