Red de conocimiento informático - Material del sitio web - Cómo obtener información de la computadora usando el programa en lenguaje C

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

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++)?

{

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:

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

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.