Red de conocimiento informático - Computadora portátil - Código del programa de cierre del lenguaje C

Código del programa de cierre del lenguaje C

Hay dos formas de implementar el apagado mediante lenguaje C:

1. Llame al comando de apagado de DOS a través de la función del sistema.

A través de

int system(char *cmd);

en stdlib.h, puede ejecutar el comando DOS cmd.

El comando de apagado en DOS es apagado -s, así que use

system("shutdown -s");

para lograr la operación de apagado.

2 El apagado se logra llamando a la función API proporcionada por Windows: void?shut_down_windows()

{

HANDLE?hToken;

TOKEN_PRIVILEGES?tkp;

//Obtener?un?token?para?este?proceso.

if?(!OpenProcessToken(GetCurrentProcess(),

?TOKEN_ADJUST_PRIVILEGES?|?TOKEN_QUERY,?amp;hToken))

return(?FALSE?);

//¿Obtener?el?LUID?para?el?apagado? privilegio.

LookupPrivilegeValue(NULL, ?SE_SHUTDOWN_NAME,

?amp; tkp.Privileges[0].Luid

tkp.PrivilegeCount?=?1); ;?//?one?privilege?to?set

tkp.Privileges[0].Attributes?=?SE_PRIVILEGE_ENABLED;

//¿Obtener?el?privilegio?de?apagado? para?este?proceso.

AjustarTokenPrivileges(hToken,?FALSE,?amp;tkp,?0,

?(PTOKEN_PRIVILEGES)NULL,?0);

if?(GetLastError()?!=?ERROR_SUCCESS)

return?FALSE;

//¿Apagar?el?sistema?y?forzar?todas?las?aplicaciones ?para?cerrar.

if?(!ExitWindowsEx(EWX_SHUTDOWN?|?EWX_FORCE,

SHTDN_REASON_MAJOR_OPERATINGSYSTEM?|

SHTDN_REASON_MINOR_UPGRADE?|

SHTDN_REASON_FLAG_PLANNED))

retorno?FALSE;

retorno?TRUE;

}