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.
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 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
Para JASM... Apagar PC desde programa
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.
>
¡¡¡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.
>