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

Вниз

Как заморозить программу SuspendedThread?   Найти похожие ветки 

 
Wadim   (2006-11-16 20:45) [0]

Ничего не работает, выдает ошибку Неверный дискриптор (getlasterror)
Делаю так:

HwndKontrol:=IntToStr(FindWindow(nil, pchar(CurCapt)));
//ShowMessage(HwndKontrol);
GetWindowThreadProcessID(StrToInt(HwndKontrol), @ProcessID);
GetParentProcessInfo(ProcessID, PathOpor);

 ListBox1.Items.Clear;

 hSnapshoot := CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);

 if (hSnapshoot = -1) then
     Exit;
 lpte.dwSize := SizeOf(TThreadEntry32);

 if (Thread32First(hSnapshoot, Lpte)) then
 repeat
   //List.Objects[I] := Pointer(me32.th32ModuleID);
   //Err:=GetLastError;
   //ListBox1.Items.add(SysErrorMessage(Err));
   GetWindowThreadProcessID(lpte.th32ThreadID, @ProcessID);
   GetParentProcessInfo(ProcessID, Path);
    if PathOpor=Path then
    begin
   GetWindowThreadProcessID(lpte.th32ThreadID, @ProcessID);
   ProcessSuspend := OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessID);
   //Err:=GetLastError;
   //ListBox1.Items.add(SysErrorMessage(Err));
   
   SuspendThread(ProcessSuspend);
   Err:=GetLastError;
   ListBox1.Items.add(SysErrorMessage(Err)+" "+IntToStr(PriorityW));

   //CloseHandle(ProcessSuspend);

   ListBox1.Items.Add(IntToStr(lpte.th32ThreadID)+" "+Path+" "+IntToStr(ProcessID)+" "+IntToStr(lpte.th32OwnerProcessID)+" "+IntToStr(ProcessSuspend)+" ProcessSuspend="+IntToStr(ProcessSuspend));
   end;
 until not Thread32Next(hSnapshoot, lpte);
    CloseHandle (hSnapshoot);



 
BiN ©   (2006-11-16 20:56) [1]

SuspendThread должен принимать описатель потока.


 
Wadim   (2006-11-16 21:50) [2]

Например, не понимаю как его получить?
есть примеры?


 
Leonid Troyanovsky ©   (2006-11-16 22:31) [3]


> Wadim   (16.11.06 21:50) [2]
> Например, не понимаю как его получить?


OpenThread, msdn.

--
Regards, LVT.


 
Wadim   (2006-11-23 01:14) [4]

>>OpenThread, msdn.

Это понятно и реально для 98 винды, а как в XP меня интересует?


 
Сергей М. ©   (2006-11-23 08:14) [5]


> Это понятно и реально для 98 винды, а как в XP меня интересует?


Цитата из msdn:

Requirements
Client  
Requires Windows Vista, Windows XP, Windows 2000 Professional, or Windows Me.


 
Чапаев ©   (2006-11-23 10:32) [6]

procedure FreezeProcess;
var
 Threads:TList;
 I:Integer;
 Th:THandle;
begin
 Threads:=TList.Create;
 GetProcessThreads(PID,Threads);
 for I := 0 to Threads.Count - 1 do begin
   Th:=OpenThread(2,False,Cardinal(Threads[I]));
   SuspendThread(Th);
   CloseHandle(Th);
 end;
 Threads.Free;
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.047 c
3-1169455907
AlexeyMir
2007-01-22 11:51
2007.04.08
Как в *.gdb в связанные таблицы добавить записи


2-1174151568
vegarulez
2007-03-17 20:12
2007.04.08
Как в TEdit разрешить записаь только цифр?


2-1174337702
Леонид
2007-03-19 23:55
2007.04.08
Пать к файлу


3-1169105130
Dmitriy_info
2007-01-18 10:25
2007.04.08
Синтаксис SQL


2-1174405501
Lexa11_2002
2007-03-20 18:45
2007.04.08
Как в DLL добавить формы