Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Процессы


MakNik ©   (2003-07-04 11:15:00) 

Как узнать какие процессы запущены в системе???


Игорь Шевченко   (2003-07-09 12:44:00) [1]

http://msdn.microsoft.com


MakNik   (2003-07-09 12:06:00) [2]

А ссылку можно???
Заранее благодарю!


Игорь Шевченко   (2003-07-08 14:40:00) [3]

MakNik © (08.07.03 12:37)

MSDN - там все подробно рассказано


MakNik   (2003-07-08 12:37:00) [4]

Что то не получается... расскажите, плз., более подробнее...


Игорь Шевченко   (2003-07-08 12:33:00) [5]

MakNik © (08.07.03 12:17)

Причина в том, что в NT4 для этих целей нужно использовать psapi


MakNik   (2003-07-08 12:17:00) [6]

Под ХР работает, под 2000 работает,... но...
Возникла проблема: Под NT4 не работает... в чем причина???


MakNik   (2003-07-08 10:28:00) [7]

Нашел хорошую ссылку:
http://web.ict.nsc.ru/~cancel/delphi/tollhlp32.html#Process32First
Спасибо всем за помощь!!


default   (2003-07-08 10:22:00) [8]

в SDK загляни там есть это всё
см. tool help functions


MakNik   (2003-07-08 10:02:00) [9]

А что такое ModEntry?


default   (2003-07-08 09:50:00) [10]

uses tlhelp32;
а нашёл я его по маске *t*h*.pas поиска файлов в винде
(сам забыл его точное название)


MakNik   (2003-07-08 09:36:00) [11]

Помогите найти модуль для ToolHelp!!!


MakNik   (2003-07-07 19:17:00) [12]

В том то и дело, что найти его не могу... скините на мыло, если у кого есть...
заранее спасибо!


Spawn   (2003-07-07 19:10:00) [13]

Дак ты модуль то подключи для ToolHelp-а. Правда я щас что то не могу вспомнить его названия((( (попробуй поискать его)


MakNik   (2003-07-07 18:39:00) [14]

У меня ругается на строку "ProcEntry: TProcessEntry32;"... Что делать???


Armen   (2003-07-04 13:56:00) [15]

procedure TForm1.Button1Click(Sender: TObject);
var
HSnap: THandle;
ProcEntry: TProcessEntry32;
begin
Memo1.Lines.Clear;
FillChar(ModEntry, Sizeof(ProcEntry), #0);
ModEntry.dwSize:= Sizeof(ProcEntry);
HSnap:= CreateToolhelp32Snapshot(TH32CS_SNAPProcess,0)
if Process32First(HSnap, ProcEntry) then
begin
repeat
( ProcEntry.??????)

procedure TForm1.Button1Click(Sender: TObject);
var
HSnap: THandle;
ProcEntry: TProcessEntry32;
begin
Memo1.Lines.Clear;
FillChar(ModEntry, Sizeof(ProcEntry), #0);
ModEntry.dwSize:= Sizeof(ProcEntry);
HSnap:= CreateToolhelp32Snapshot(TH32CS_SNAPProcess,0)
if Process32First(HSnap, ProcEntry) then
begin
repeat
Memo1.Lines.Add(ProcEntry.??????);
until not Process32Next(HSnap, ProcEntry);
CloseHandle(HSnap);
end;
end;


Armen   (2003-07-04 13:54:00) [16]

Да, еще:

В конце забыл CloseHandle(HSnap);


Armen   (2003-07-04 13:51:00) [17]

>NiBL"S (04.07.03 11:38)
Неа. Это не процессы, это окна.

procedure TForm1.Button1Click(Sender: TObject);
var
HSnap: THandle;
ProcEntry: TProcessEntry32;
begin
Memo1.Lines.Clear;
FillChar(ModEntry, Sizeof(ModEntry), #0);
ModEntry.dwSize:= Sizeof(ModEntry);
HSnap:= CreateToolhelp32Snapshot(TH32CS_SNAPProcess,0)
if Process32First(HSnap, ProcEntry) then
begin
repeat
Memo1.Lines.Add(ProcEntry.??????);
( HSnap, ProcEntry)

>NiBL"S (04.07.03 11:38)
Неа. Это не процессы, это окна.

procedure TForm1.Button1Click(Sender: TObject);
var
HSnap: THandle;
ProcEntry: TProcessEntry32;
begin
Memo1.Lines.Clear;
FillChar(ModEntry, Sizeof(ModEntry), #0);
ModEntry.dwSize:= Sizeof(ModEntry);
HSnap:= CreateToolhelp32Snapshot(TH32CS_SNAPProcess,0)
if Process32First(HSnap, ProcEntry) then
begin
repeat
Memo1.Lines.Add(ProcEntry.??????);
until not Process32Next(HSnap, ProcEntry);
end;
end;

?????? - заменишь сам.
Может что то неправиьно написал, исправишь. (Под рукой нету Delphi).


NiBL'S   (2003-07-04 11:38:00) [18]

Вот пример как по полученному списку приложений вырубать все кроме перечисленных в условии, переделай его и получишь то что надо.

Procedure TGeneral.eWindows;
VAR
Wnd,WndNext : hWnd;
buff: ARRAY [0..127] OF Char;
begin
Wnd := GetWindow(Handle, gw_HWndFirst);
WHILE Wnd <> 0 DO
BEGIN {Не показываем:}
WndNext:=Wnd;
IF (Wnd <> Application.Handle) AND {-Собственное окно}
IsWindowVisible(Wnd) AND {-Невидимые окна}
(GetWindow(Wnd, gw_Owner) = 0) AND {-Дочернии окна}
(GetWindowText(Wnd, buff, sizeof(buff)) <> 0){-Окна без заголовков}
THEN
BEGIN
GetWindowText(Wnd, buff, sizeof(buff));
If buff<>"Program Manager"
Then PostMessage(Wnd,WM_Close,0,0);
END;
( WndNext, gw_hWndNext)

Вот пример как по полученному списку приложений вырубать все кроме перечисленных в условии, переделай его и получишь то что надо.

Procedure TGeneral.eWindows;
VAR
Wnd,WndNext : hWnd;
buff: ARRAY [0..127] OF Char;
begin
Wnd := GetWindow(Handle, gw_HWndFirst);
WHILE Wnd <> 0 DO
BEGIN {Не показываем:}
WndNext:=Wnd;
IF (Wnd <> Application.Handle) AND {-Собственное окно}
IsWindowVisible(Wnd) AND {-Невидимые окна}
(GetWindow(Wnd, gw_Owner) = 0) AND {-Дочернии окна}
(GetWindowText(Wnd, buff, sizeof(buff)) <> 0){-Окна без заголовков}
THEN
BEGIN
GetWindowText(Wnd, buff, sizeof(buff));
If buff<>"Program Manager"
Then PostMessage(Wnd,WM_Close,0,0);
END;
Wnd := GetWindow(WndNext, gw_hWndNext);
END;
End;


Наверх

Титульная страница Поиск, карта сайта Написать письмо