Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Не компилится AdJustTokenPrivileges ...   Найти похожие ветки 

 
Bestden   (2004-02-10 14:36) [0]


Процедура выключения компа:



procedure TMain.ShutDown;
var ph: THandle;
   tp, prevst: TTokenPrivileges;
   rl: DWORD;
begin
OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, ph);
LookupPrivilegeValue(Nil,"SeShutdownPrivilege", tp.Privileges[0].Luid);
tp.PrivilegeCount:=1;
tp.Privileges[0].Attributes:= 2;
AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl);
ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF or EWX_FORCE,0);
end;


Всё вроде бы правильно, но компилятор ругается на ф-цию  AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl);
Пишет следующее:

 [Error] offer.pas(51): Ambiguous overloaded call to "AdjustTokenPrivileges"
 [Fatal Error] SD.dpr(6): Could not compile used unit "offer.pas"

Будьте добры помогите мне, а то мой процесс разработки программы заглох серьёзно и надолго...
Всё спасибо!


 
VMcL ©   (2004-02-10 20:13) [1]

F1 нажать религия не позволяет?


 
Bestden   (2004-02-10 20:45) [2]

Зря ты так...
Во-первых, если бы мне помог хелп и Ф1, то я бы в инет и не вылазил!
Во-вторых, этот код не в одном факе написан и у других он компилится, но вот у меня не хочет...
В-третьих, ошибка эта указывает на ошибку распознания процедуры(в модуле Windows две функции AdjustTokenPrivileges, с разным четвертым параметром..), но процедура не моя а делфей(т.е. тех ребят что писали делфяхи)!!!
Вот поэтому я и прошу помоч...
А вот рилигия мне позволяет нажимать F1 !!!!!!!!!!!!!!!


 
Vit@ly ©   (2004-02-10 21:16) [3]

Что у тебя в 51 строке offer.pas
Выложи, посмотрим


 
VMcL ©   (2004-02-10 22:44) [4]

>>Bestden  (10.02.04 20:45) [2]

Проверь внимательно типы параметров прототипов AdjustTokenPrivileges() и сравни с тем, что написано в твоем приложении. У меня на Д6, скомпилилось. Возможно в Д7 нужно где-то поюзать приведение типов.

>>Vit@ly ©  (10.02.04 21:16) [3]

AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl);

Он же привел код.


 
VMcL ©   (2004-02-10 22:46) [5]

>>Bestden  (10.02.04 20:45) [2]

P.S. Ты не писал, что справка не помогла, => [1]


 
Bestden   (2004-02-10 23:38) [6]

Так вот пишу теперь пишу :) не помогает справка!..., вот опять ты говоришь, что у тебя компилится, нифига не понимаю...
перепроверял типы, и часто делаемые ошибки по 10 раз минимум!
Справка объясняет, что не понятно с какой ей функцией работать и приводится пример, но у меня не как вроде в примере! У меня тип другой данных определенный...
Там может глюк в самой делфяхе, но может во мне :)
Там в общем в модуле Windows две процедуры с одним именем:=
function AdjustTokenPrivileges(TokenHandle: THandle; DisableAllPrivileges: BOOL;
 const NewState: TTokenPrivileges; BufferLength: DWORD;
 var PreviousState: TTokenPrivileges; var ReturnLength: DWORD): BOOL; external advapi32 name "AdjustTokenPrivileges";
function AdjustTokenPrivileges(TokenHandle: THandle; DisableAllPrivileges: BOOL;
 const NewState: TTokenPrivileges; BufferLength: DWORD;
 PreviousState: PTokenPrivileges; var ReturnLength: DWORD): BOOL; external advapi32 name "AdjustTokenPrivileges";
разница как видите в них только в элементе PreviousState !
Но я то посылаю этой функции определенный тип...., ну млин даж незнаю что делать!
Может кто поможет?
А то моя прога нашла целую ГОРУ предкновения!
Всем спасибо!


 
Игорь Шевченко ©   (2004-02-11 11:44) [7]

AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), nil, rl);


 
Bestden   (2004-02-11 17:59) [8]

Всем спасибо!!!
Свою проблему нашел сам :)
то [7]: до нахождения своей ошибки этот вариант никак не проходил...



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.036 c
4-1076686502
}{enon
2004-02-13 18:35
2004.04.18
Как заблокировать DC?


1-1080699443
Zakalibit
2004-03-31 06:17
2004.04.18
Синхронизация VCL с другими потоками


7-1076840953
Gorlum
2004-02-15 13:29
2004.04.18
Все принтеры


3-1079622632
Новичек
2004-03-18 18:10
2004.04.18
Задание степени релевантности при поиске?


4-1076307416
Ricko
2004-02-09 09:16
2004.04.18
Правильная выгрузка DLL