Главная страница
    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.46 MB
Время: 0.045 c
1-1080566005
Антон Леонидович
2004-03-29 17:13
2004.04.18
file of Text, char, byte


1-1080803727
ORMADA
2004-04-01 11:15
2004.04.18
Variant


7-1076601858
Slym
2004-02-12 19:04
2004.04.18
Как передать консоли конец цайла (EOF)?


3-1080116743
Ivan
2004-03-24 11:25
2004.04.18
Master table open operation failed


1-1081002685
ss300
2004-04-03 18:31
2004.04.18
Install Shield





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский