![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Процессы
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;