Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Компьютер отключается, НО... [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);
}


Наверх

Титульная страница Поиск, карта сайта Написать письмо