A
Andreas Horneff
Hi at all,
I've got this function (written in BC++)
bool TShutdown::MySystemShutdown()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
// Get a token for this process.
if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
return( FALSE );
// Get the LUID for the shutdown privilege.
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
// Get the shutdown privilege for this process.
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES)NULL, 0);
if (GetLastError() != ERROR_SUCCESS)
return FALSE;
// Shut down the system and force all applications to close.
if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0))
return FALSE;
return TRUE;
}
Now my problem. When I execute this funtion on my Laptop, running with
WinXP, my Laptop shuts
down and switchs off.
On my other system, running with win2k, win2k shut down, but the PC didn't
switch off. My Mainboard
supports this function. When I click at 'Start', 'Shutdown', the PC switchs
off, after shutdown. Why
dosen't it switch off, when I run my Function?! Can anyone help me?
Or can anyone tell me an other way, to realize that?!
THX a lot!!!
(The function isn't written by myself, I found it at the WWW)
Sorry for my bad english...
Andreas
I've got this function (written in BC++)
bool TShutdown::MySystemShutdown()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
// Get a token for this process.
if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
return( FALSE );
// Get the LUID for the shutdown privilege.
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
// Get the shutdown privilege for this process.
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES)NULL, 0);
if (GetLastError() != ERROR_SUCCESS)
return FALSE;
// Shut down the system and force all applications to close.
if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0))
return FALSE;
return TRUE;
}
Now my problem. When I execute this funtion on my Laptop, running with
WinXP, my Laptop shuts
down and switchs off.
On my other system, running with win2k, win2k shut down, but the PC didn't
switch off. My Mainboard
supports this function. When I click at 'Start', 'Shutdown', the PC switchs
off, after shutdown. Why
dosen't it switch off, when I run my Function?! Can anyone help me?
Or can anyone tell me an other way, to realize that?!
THX a lot!!!
(The function isn't written by myself, I found it at the WWW)
Sorry for my bad english...
Andreas