In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Para JASM... Apagar PC desde programa

Foro público de Xailer en español
Responder
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

Para JASM... Apagar PC desde programa

Mensaje 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.
Avatar de Usuario
jasm
Mensajes: 447
Registrado: Mar Jul 08, 2008 8:12 pm

Para JASM... Apagar PC desde programa

Mensaje 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.
>
Responder