Cómo obtener información de la computadora usando el programa en lenguaje C
No se puede obtener la contraseña de encendido. El nombre de usuario es simple. Simplemente use la API GetUserName.
Déjame mostrarte el código detallado: //#include?"stdafx.h"
//#include?"GetSysInfo.h"
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif p>
CWinApp?theApp;
usando?namespace?std;
//?Obtener información relacionada con la CPU
void?GetCPUInfo()
void?GetCPUInfo()
p>{
CString?CPU;
SYSTEM_INFO?systeminfo;
//Obtener el modelo de CPU
GetSystemInfo ?(&systeminfo);
cambiar?(systeminfo.dwProcessorType)
{
caso?PROCESSOR_INTEL_386:?/?/?386 serie
CPU?=?"PROCESSOR_INTEL_386";
rotura;
caso?PROCESSOR_INTEL_486:?/?//?486 serie
CPU?=?"PROCESSOR_INTEL_486";
rotura;
caso?PROCESSOR_INTEL_PENTIUM:?//?Pentium serie
CPU?=?"PROCESSOR_INTEL_PENTIUM";
rotura;
caso?PROCESSOR_MIPS_R4000:
CPU?=?"PROCESSOR_MIPS_R4000";
rotura;
caso?PROCESSOR_HITACHI_SH3:
CPU?=?"PROCESSOR_HITACHI_SH3";
rotura;
caso?PROCESSOR_HITACHI_SH4:
CPU?=?"PROCESSOR_HITACHI_SH4";
ruptura;
caso?PROCESSOR_STRONGARM:
CPU?=?"PROCESSOR_STRONGARM";
ruptura;
caso?PROCESSOR_ARM720 :
CPU?=?"PROCESSOR_ARM720";
descanso;
predeterminado:
CPU?=?"Desconocido?Tipo" ;
descanso;
}
printf("\n\nCPU?Modelo: %s\n\n",CPU);
}
//?Obtener información de la memoria
void?GetMemoryInfo()
{
CString?MemoryTotal;?/ /?Tamaño de memoria total
CString?MemoryAvail;?//?Tamaño de memoria disponible
MEMORYSTATUS?memory;
memory.dwLength?=sizeof(memory) ;?//Inicialización
//Get
Información de la memoria
GlobalMemoryStatus(&memory);
MemoryTotal.Format(_T("%d?Mb"),int(memory.dwTotalPhys/1024/1024));
MemoryAvail.Format(_T("%d?Mb"),int(memory.dwAvailPhys/1024/1024));
printf("Memoria total del host: %s\n\n ",MemoryTotal);
printf("Memoria disponible del host: %s\n\n",MemoryAvail);
}
//? Obtener el Información del disco
void?GetDiskInfo()
{
DWORD?sector,byte,cluster,free;
long?int? espacio libre, espacio total;
UINT?type;
char?name;
CString?strname;
// Detección de bucle A ~ Z,? Salida cuando se encuentra el disco
//0—disco desconocido, 1—no existe, 2—disco extraíble, 3—disco fijo
//4— disco de red, 5—CD-ROM, 6—Disco virtual de memoria
¿para?(nombre='A';nombre<='Z';nombre++)?
{ p>
strname.Format(_T("%c:"),name);
type?=?GetDriveType(strname);?//Obtener el tipo de disco
cambiar(tipo )
{
case?0:
printf("Tipo de disco desconocido:?%s",strname);
break ;
case?2:
printf("Disco extraíble:?%s",strname);
break;
caso?3:
printf("Disco fijo:?%s",strname);
rotura;
caso?4: p>
printf("Disco asignado en red:?%s",strname);
break;
case?5:
printf(" CD-ROM: ?%s",strname);
break;
case?6:
printf("Memoria del disco virtual:?%s" ,strname);
break;
predeterminado:
break;
}
if(type? !=?1 )
{
/// Obtener información de espacio en disco
GetDiskFreeSpace(strname,§or,&byte,&free,&cluster);
//?Tamaño total del disco
espacio total?=?int(cluster)*byte*sector/1024/1024;
//Tamaño del espacio disponible en disco p>
espacio libre?=?int(libre)*byte*sector/1024/1024;?
pr
intf("?Tamaño total?%d?Mb",espacio total);
printf("?Espacio disponible?%d?Mb",espacio libre);
printf("\ n");
}
}
}
int?_t?main(int?argc,?TCHAR*?argv [],?TCHAR*?envp[])
{
int?nRetCode?=?0;
//initialize?MFC?and? imprimir?y?error?en?fallo
si?(!AfxWinInit(::GetModuleHandle(NULL),?NULL,?::GetCommandLine(),?0))
{
//?TODO:?cambiar?error?código?para?adaptarse?a?sus?necesidades
cerr?<
nRetCode?=?1;
}
else
{
//?TODO:?codifique?el?comportamiento?de?su?aplicación?aquí.
///?Información de salida de la CPU
GetCPUInfo();
//?Información de la memoria de salida
GetMemoryInfo();
//Información del disco de salida
GetDiskInfo();
}
return?nRetCode;
}
Se obtiene mucha información relevante sobre el sistema. Como el nombre de usuario del disco duro de la memoria de la CPU, etc. Puedes consultarlo, jaja.