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

Вниз

ошибка   Найти похожие ветки 

 
Володя   (2005-03-05 15:30) [0]

нехочет закрывать, ругается
[Error] ProcesiSis.pas(48): There is no overloaded version of "AdjustTokenPrivileges" that can be called with these arguments
[Fatal Error] ProcesiSis1.dpr(5): Could not compile used unit "ProcesiSis.pas"

код

unit ProcesiSis;
interface
uses
 Windows, Messages, SysUtils,  Dialogs, tlhelp32, psapi, Classes, Forms,
 Controls, StdCtrls;//, Variants, Classes, Graphics, Controls
type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
var
 Form1: TForm1;
implementation
{$R *.dfm}

function ProcessTerminate(dwPID:Cardinal):Boolean;
{$IFDEF Win32} stdcall; {$ELSE} ; export; {$ENDIF}
var
 hToken:THandle;
 SeDebugNameValue:Int64;
 tkp: TOKEN_PRIVILEGES;
 ReturnLength: Cardinal;
 hProcess: THandle;
begin
         Result:=false;
         if not OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then
          exit;
         if not LookupPrivilegeValue(nil, "SeDebugPrivilege", SeDebugNameValue) then begin
           CloseHandle(hToken);
           exit;
         end;
         tkp.PrivilegeCount:=1;
         tkp.Privileges[0].Luid:=SeDebugNameValue;
         tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
         if GetLastError()<>ERROR_SUCCESS then
         exit;
         hProcess:=OpenProcess(PROCESS_TERMINATE, FALSE, dwPID);
         if hProcess=0 then
         exit;
         if not TerminateThread(dwPID, DWORD(-1))
         then exit;
         CloseHandle(dwPID);
         tkp.Privileges[0].Attributes:=0;
         AdjustTokenPrivileges(hToken, FALSE, tkp, SizeOf(tkp), ReturnLength);
         if GetLastError() <> ERROR_SUCCESS then
           Exit;
         Result:=true;
end ;

function LocateProcess( const ImageName: String ): Integer;
var
 Snapshot,
 ProcessHandle,
 i, Res: Integer;//
 //Res: Pointer;Cardinal;
 BytesRead: Cardinal;
 ProcessEntry: TProcessEntry32;
 ExeFile: String;
 PIDs: array[0..4095] of DWord;
 ddd:Boolean;

begin
  Res:=0;
  Snapshot :=CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  SetLength(ExeFile, Length(ImageName));
  if Snapshot<>0 then begin
    ShowMessage("Windows 9x, Me, 2000");
    ProcessEntry.dwSize := SizeOf(TProcessEntry32);
    if Process32First(Snapshot, ProcessEntry) then
      repeat
      if ((Pos(ImageName, ExtractFileName(ProcessEntry.szExeFile))>0) OR (Pos("WORD", ExtractFileName(ProcessEntry.szExeFile))>0)) then begin
          Res:=ProcessEntry.th32ProcessID;
          ShowMessage("Res="+IntToStr(Res)+"  "+ExtractFileName(ProcessEntry.szExeFile)+"  Snapshot="+IntToStr(Snapshot));
         ddd:=ProcessTerminate(longInt(Res));
      end;
      until not Process32Next(Snapshot, ProcessEntry);
      CloseHandle(Snapshot);
  end
  else begin
    ShowMessage("Windows NT, 2000 PSAPI");
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  LocateProcess("Word");
  ShowMessage("Close!");
end;

end.


 
Володя   (2005-03-05 15:44) [1]

если несложно, гляньте не могу разобраться с AdjustTokenPrivileges


 
MU   (2005-03-05 15:45) [2]

AdjustTokenPrivileges(hToken, FALSE, tkp, SizeOf(tkp), nil, ReturnLength);


 
Володя   (2005-03-05 15:46) [3]

я так и сделал


 
Anatoly Podgoretsky ©   (2005-03-05 15:47) [4]

Ну и напрасно, такой перегруженной версии нет.


 
MU   (2005-03-05 15:48) [5]


> Володя   (05.03.05 15:46) [3]
> я так и сделал

И что?


 
Володя   (2005-03-05 15:48) [6]

не срабатывает, но не ругается


 
MU   (2005-03-05 15:49) [7]


> Anatoly Podgoretsky ©   (05.03.05 15:47) [4]
> Ну и напрасно, такой перегруженной версии нет.

?????


 
Володя   (2005-03-05 15:51) [8]

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


 
Anatoly Podgoretsky ©   (2005-03-05 16:03) [9]

MU   (05.03.05 15:49) [7]
Не веришь компилятору?


 
MU   (2005-03-05 16:06) [10]

Anatoly Podgoretsky ©
  верю (своему D6) больше, чем вашему :)


 
Володя   (2005-03-05 16:06) [11]

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


 
Fay ©   (2005-03-05 16:14) [12]

2 Anatoly Podgoretsky ©   (05.03.05 15:47) [4]
А чё не так, вАщЕ?


 
Володя   (2005-03-05 16:23) [13]

хочу поток прижать, а он нехочет, как проще сделать?


 
Anatoly Podgoretsky ©   (2005-03-05 16:24) [14]

MU   (05.03.05 16:06) [10]
У вас разные Д6, у него говорит что нет.


 
Anatoly Podgoretsky ©   (2005-03-05 16:25) [15]

Fay ©   (05.03.05 16:14) [12]
Какой может быть ответ на вопрос, если он не в состоянии оформить тему.


 
MU   (2005-03-05 16:27) [16]

> Володя   (05.03.05 15:48) [6]
> не срабатывает, но не ругается



> Anatoly Podgoretsky ©   (05.03.05 16:24) [14]
> MU   (05.03.05 16:06) [10]
> У вас разные Д6, у него говорит что нет.


  читайте внимательнее :))


 
Володя   (2005-03-05 16:29) [17]

ладно, помучаюсь далее  ),СПАСИБО ВСЕМ



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

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

Наверх




Память: 0.5 MB
Время: 0.066 c
4-1107425726
Olga_b
2005-02-03 13:15
2005.03.20
Чтение из СОМ-порта


1-1110191393
mf
2005-03-07 13:29
2005.03.20
Отладка программы


1-1110095064
Checist [root]
2005-03-06 10:44
2005.03.20
TreeNode


14-1109417059
xman
2005-02-26 14:24
2005.03.20
медленный инет


4-1107454738
Artur
2005-02-03 21:18
2005.03.20
Может ли ехе...