Главная страница
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.039 c
6-1076496794
Макын
2004-02-11 13:53
2004.04.18
Ip


6-1077002209
Vitaliygavrilov
2004-02-17 10:16
2004.04.18
Как сделать браузер не для сети а как каталогизатор


3-1080113776
alex123
2004-03-24 10:36
2004.04.18
Суммирование в DbGridEH и nested dataset в ClientDataSet


4-1076419821
Islander
2004-02-10 16:30
2004.04.18
Вставить текст из буфера в чужое приложение


1-1080547390
Sauron_ua
2004-03-29 12:03
2004.04.18
Текстури в DirectX