Ahorrar energía con Delphi

A continuación os presento una serie de funciones para ahorrar energía en vuestros equipos.



//pasar monitor a modo de ahorro de energía

procedure modoAhorroDeEnergia;

begin SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 1);

end;



//apagar monitor

procedure apagarMonitor;

begin SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 2);

end;



//Encender monitor:

procedure encenderMonitor;

begin SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);

end;





//Apagar equipo (requiere permisos administrativos)

PROCEDURE apagarEquipo;

begin

IF NOT (ExitWindowsEx(EWX_SHUTDOWN + EWX_FORCE, 0)) then

showmessage('No puedo apagar el equipo');

end;



//Reiniciar equipo

PROCEDURE ReiniciarEquipo;

begin

IF NOT (ExitWindowsEx(EWX_REBOOT, 0)) then

showmessage('No puedo reiniciar el equipo');

end;



//Devuelve TRUE si el sistema puede Hibernar

FUNCTION TForm1.SystemCanHibernate(): boolean;

RESOURCESTRING

rsDll = 'powrprof.dll';

rsFunc = 'IsPwrHibernateAllowed';

TYPE

TFunc = FUNCTION: boolean; stdcall;

VAR

func: TFunc;

hDll: THandle;

BEGIN

result := false;

hDll := LoadLibrary(PChar(rsDll));

IF (hDll <> 0) THEN

TRY

@func := GetProcAddress(hDll, PChar(rsFunc));

result := Assigned(func) AND func();

FINALLY

FreeLibrary(hDll);

END;

END;





//Devuelve TRUE si el sistema puede ser suspendido

FUNCTION tform1.SystemCanSuspend(): boolean;

RESOURCESTRING

rsDll = 'powrprof.dll';

rsFunc = 'IsPwrSuspendAllowed';

TYPE

TFunc = FUNCTION: boolean; stdcall;

VAR

func: TFunc;

hDll: THandle;

BEGIN

result := false;

hDll := LoadLibrary(PChar(rsDll));

IF (hDll <> 0) THEN

TRY

@func := GetProcAddress(hDll, PChar(rsFunc));

result := Assigned(func) AND func();

FINALLY

FreeLibrary(hDll);

END;

END;






No hay comentarios:

Publicar un comentario

Simulación del movimiento de los electrones en un campo electrico

Espectacular simulación realizada con OpenGL del movimiento de los electrones cuando atraviesan un campo eléctrico. Como muestra la image...