· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Как заставить работать функцию ExitWindowEx в XP

Посл.отвђт Сообщенiе


Дата: Авг 29, 2003 20:20:14

Как заставить работать функцию ExitWindowEx в XP
В описании сказано, что ей надо дать какойто приоритет, но что-то не разберусь ни как...


Дата: Авг 30, 2003 01:24:38

пример из MSDN

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");

// Shut down the system and force all applications to close.

if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0))
error("ExitWindowsEx");


Дата: Сен 1, 2003 17:41:05

Что-то я забодался, в корягу, ни чего не получается...
Может быть кто даст рабочий пример на xASM?


Дата: Сен 1, 2003 17:47:06

Что-то типа такого.
.data
	lpName db "SeShutdownPrivilege",0
.data?
	hToken dd ?
	tp TOKEN_PRIVILEGES <>
.code
start:
	invoke GetVersion
	test eax, 80000000h
	jnz @F
	invoke GetCurrentProcess
	invoke OpenProcessToken, eax, TOKEN_ADJUST_PRIVILEGES+TOKEN_QUERY, ADDR hToken
	invoke LookupPrivilegeValue, 0, ADDR lpName, ADDR tp.Privileges[0].Luid
	mov tp.PrivilegeCount, 1
	mov tp.Privileges[0].Attributes, SE_PRIVILEGE_ENABLED
	invoke AdjustTokenPrivileges, hToken, FALSE, ADDR tp, 0, NULL, 0
@@:	invoke ExitWindowsEx, EWX_SHUTDOWN, 0ffffh


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.067