
22.12.2008, 12:16
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
С нами:
9746420
Репутация:
119
|
|
groundhog, я тоже подумывал насчет нехватки прав... Вот код, который, как мне показалось, "дает" права:
Код:
void chPriv(int res)
{
HANDLE hToken;
if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken))
{
TOKEN_PRIVILEGES priv;
priv.PrivilegeCount = 1;
LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &priv.Privileges[0].Luid);
if(res)
priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
else
priv.Privileges[0].Attributes = 0;
AdjustTokenPrivileges(hToken, 0, &priv, sizeof(priv), NULL, NULL);
CloseHandle(hToken);
}
}
Есть ли здесь ошибка?
Если не использовать эту функцию, то вылетает ошибка "не хватает прав", а если использовать - "не хватает памяти".
Последний раз редактировалось criz; 22.12.2008 в 12:23..
|
|
|