Página 1 de 1

Para JASM... Apagar PC desde programa

Publicado: Mié Jun 11, 2008 8:59 am
por Xevi
Guardo este Wrapper que encontré un dia en el foro...
Lo probé... y funciona perfecto... :-)
#pragma BEGINDUMP
#include <windows.h>
#include "xailer.h"
*****************************************
* FUERA PROBLEMAS
* Apaga el Ordenador!!!
* -----------------
* ProblemOut()
******************************************
XA_FUNC( PROBLEMOUT )
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
if( OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES |
TOKEN_QUERY, &hToken ) ){
LookupPrivilegeValue( NULL, SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid );
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges( hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES)NULL, 0 );
if( GetLastError() == ERROR_SUCCESS ){
InitiateSystemShutdown( NULL, NULL, 0, TRUE, FALSE );
}
}
}
#pragma ENDDUMP
Un Saludo,
Xevi.

Para JASM... Apagar PC desde programa

Publicado: Mié Jun 11, 2008 9:14 am
por jasm
Xevi,
¡¡¡Gracias!!!
Era lo que buscaba.
Saludos,
Alf+.
Xevi escribió:
> Guardo este Wrapper que encontré un dia en el foro...
> Lo probé... y funciona perfecto... :-)
>
> #pragma BEGINDUMP
> #include <windows.h>
> #include "xailer.h"
>
> *****************************************
> * FUERA PROBLEMAS
> * Apaga el Ordenador!!!
> * -----------------
> * ProblemOut()
> ******************************************
> XA_FUNC( PROBLEMOUT )
> {
> HANDLE hToken;
> TOKEN_PRIVILEGES tkp;
>
> if( OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES |
> TOKEN_QUERY, &hToken ) ){
> LookupPrivilegeValue( NULL, SE_SHUTDOWN_NAME,
> &tkp.Privileges[0].Luid );
> tkp.PrivilegeCount = 1;
> tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
> AdjustTokenPrivileges( hToken, FALSE, &tkp, 0,
> (PTOKEN_PRIVILEGES)NULL, 0 );
> if( GetLastError() == ERROR_SUCCESS ){
> InitiateSystemShutdown( NULL, NULL, 0, TRUE, FALSE );
> }
> }
> }
> #pragma ENDDUMP
>
>
> Un Saludo,
> Xevi.
>