Текущий архив: 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