![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Компьютер отключается, НО... [D6, WinXP]
Beglec © (2002-09-26 05:00:00)Пробывал двумя способами.
1. С привилегиями.
2. Через программу Shutdown - кстате, этот вариант мне больше нравится и работает стабильней!!!
Все отключается но появляется лого
"Типа теперь можете отключить питание"
Как убрать данную фигню и заставить компьютер действительно ПОЛНОСТЬЮ отключаться.
Win XP
Вроде какой то где то ключь прописать в реестре надо, но какой??? Может кто подскажет
Заранее благодарен.
Fel (2002-09-26 15:32:00) [1]Скорее всего у тебя AT-шная мать, а не ATX-овская. В этом случае ты и не выключишь полностью нормально.
Song (2002-09-26 13:10:00) [2]А Ваш комп выключается через Пуск нормально?
У меня тоже XP. И конструкция привелегии+ExitWindowsEx() работает отлично.
Александр Спелицин (2002-09-26 11:36:00) [3]Вот работающий пример, правда на C.
#include
#include
void error (char* error_string);
int PASCAL WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdLine, int nCmdShow )
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
// Get a token for this process.
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
error("OpenProcessToken");
// 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);
// Cannot test the return value of AdjustTokenPrivileges.
if (GetLastError() != ERROR_SUCCESS)
error("AdjustTokenPrivileges");
ExitWindowsEx(EWX_POWEROFF, 0);
return (0);
}
void error (char* error_string)
{
printf (error_string);
}