![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Есть код, вот он
Код:
procedure TForm1.Button1Click(Sender: TObject); var Token : THandle; TokenPrivileges : TTokenPrivileges; ProcessHandle : THandle; TokenHandle : THandle; SID : _SID_AND_ATTRIBUTES; Buff : pointer; Snap,d,TypeUser : DWORD; Process : TPROCESSENTRY32; user,domain : array[0..MAX_PATH] of char; begin if OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, Token) then begin if LookupPrivilegeValue(nil, PChar('SeDebugPrivilege'), TokenPrivileges.Privileges[0].Luid) then begin TokenPrivileges.PrivilegeCount := 1; TokenPrivileges.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; if AdjustTokenPrivileges(Token, false, TokenPrivileges, 0, PTokenPrivileges(nil)^, PDWord(nil)^) then//<- Вот тут begin Snap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if Snap <> INVALID_HANDLE_VALUE then begin Process.dwSize := SizeOf(TPROCESSENTRY32); if Process32First(Snap, Process) then repeat ProcessHandle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_TERMINATE,false,Process.th32ProcessID); OpenProcessToken(ProcessHandle,TOKEN_QUERY,TokenHandle); Buff:= HeapAlloc(GetProcessHeap,0,cbBuff); if GetTokenInformation(TokenHandle,TokenUser,buff,cbBuff,d) then begin SID := SID_AND_ATTRIBUTES(buff^); d := cbBuff; TypeUser:= SidTypeUser; if LookupAccountSid(nil,sid.Sid,user,d,domain,d,TypeUser) then begin if (lstrcmp(user,'SYSTEM') <> 0) and (lstrcmp(user,'система') <> 0) and (lstrcmp(user,'NETWORK SERVICE') <> 0) and (lstrcmp(user,'LOCAL SERVICE') <> 0) then begin MessageBox(0,user,#0,0); // показать пользователя процесса TerminateProcess(ProcessHandle,0);// завершить процесс end; end; end; CloseHandle(TokenHandle); CloseHandle(ProcessHandle); until not Process32Next(Snap, Process); CloseHandle(Snap); end; end; end; end; end; Код:
[dcc32 Error] Unit1.pas(52): E2250 There is no overloaded version of 'AdjustTokenPrivileges' that can be called with these arguments |
#2
|
||||
|
||||
![]() Ты типы аргументов правильно указал (var/out параметры и т.п.)?
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
|||
|
|||
![]() Прошу прощения, поясните? не совсем понял вас)
|
#4
|
||||
|
||||
![]() Перевод ошибки: это не перегружаемый вариант функции, которая может быть вызвана с этим набором аргументов, comprende?
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 17.02.2015 в 08:30. |