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

Вниз

выключение компьютера   Найти похожие ветки 

 
alexsc   (2003-03-31 14:13) [0]

Уважаемые мастера. В Delphi выдается такая ошибка.
[Error] finish.pas(43): Ambiguous overloaded call to "AdjustTokenPrivileges"

В чем неточности.

procedure TForm_F.BitBtn2Click(Sender: TObject);
var
PrevState,tkp : _Token_Privileges;
ph, handle1, hToken1 : 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,0);
end;

Спасибо, Алексей.


 
Clickmaker ©   (2003-03-31 14:17) [1]

function AdjustTokenPrivileges(TokenHandle: THandle; DisableAllPrivileges: BOOL;
const NewState: TTokenPrivileges; BufferLength: DWORD;
var PreviousState: TTokenPrivileges; var ReturnLength: DWORD): BOOL; stdcall; overload;
{$EXTERNALSYM AdjustTokenPrivileges}
function AdjustTokenPrivileges(TokenHandle: THandle; DisableAllPrivileges: BOOL;
const NewState: TTokenPrivileges; BufferLength: DWORD;
PreviousState: PTokenPrivileges; var ReturnLength: DWORD): BOOL; stdcall; overload;

То бишь можно и var подсунуть и указатель. В твоем случае видимо нужно так
AdjustTokenPrivileges(ph,FALSE,tp,SizeOf(prevst), @prevst,rl);


 
alexsc   (2003-03-31 14:39) [2]

Спасибо за ответ, но к сожалению программа продолжает ругаться.


 
Игорь Шевченко ©   (2003-03-31 15:15) [3]

AdjustTokenPrivileges(hToken, FALSE, tp, 0,
nil, returnedlength);


 
Intell ©   (2003-03-31 15:25) [4]

winexec(pchar("RUNDLL32.EXE user,exitwindows"),sw_shownormal);
или лучше
win32check(exitwindowsex(ewx_shutdown, 0));

Вырубает комп без вопросов.


 
alexsc   (2003-03-31 16:05) [5]

To Intell © win32check(exitwindowsex(ewx_shutdown, 0));
Не вырубает комп без вопросов.
Говорит, что нет прав

To Игорь Шевченко © (31.03.03 15:15)
AdjustTokenPrivileges(hToken, FALSE, tp, 0,nil,Returnedlength);
А что за типы параметров, тк все равно ругается.





 
Clickmaker ©   (2003-03-31 16:14) [6]

Не поленился, скомпилил твой код. Не ругается. Хоть с @, хоть без...


 
alexsc   (2003-03-31 16:53) [7]

Это может зависить от операционки WINXP и версии лицензионно-чистой версии Delphi 5 Pro
Я же не издеваюсь задавая такие вопросы Вам.


 
Игорь Шевченко ©   (2003-03-31 17:49) [8]

alexsc (31.03.03 16:05)

var
hToken : THANDLE;
tp : TOKEN_PRIVILEGES;
returnedlength : DWORD;


 
alexsc   (2003-04-03 09:42) [9]

Всем огромное спасибо, перетащил в основную форму и все заработало, какой-то ГЛЮК ешкин кот. Отсюда и все недопонимание мной Вас.
Алексей



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

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

Наверх




Память: 0.48 MB
Время: 0.013 c
7-13488
Клавишник
2003-04-02 21:54
2003.06.05
Программирование СОМ -портов


14-13391
Bokus
2003-05-16 01:06
2003.06.05
Как и гле получить права на свою программу


14-13420
Vlad Oshin
2003-05-19 12:28
2003.06.05
оцените навскидку ноутбук, чтоб мне отвязаться :), пожалуст


14-13390
Iban
2003-05-17 12:54
2003.06.05
TFastDIB


3-13057
Reals
2003-05-16 20:08
2003.06.05
ПОДСКАЖИТЕ ПОЖАЛУЙСТА по поводу Microsoft.Jet.OLEDB.4.0