![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как можно увидеть запущен ли exe? [D4, D5, Win95/98, WinME]
Art © (2001-10-31 13:19:00)Как мне узнать запущен ли опред. exe"шник?Напишите код.
Anderius (2001-11-14 21:52:00) [1]Смотри этот код, он подходит не только для запущенного exe...
procedure TForm1.FormActivate(Sender: TObject);
var
hSnapshoot: THandle;
pe32: TProcessEntry32;
s:string;
const
PROCESS_TERMINATE = $0001;
PROCESS_CREATE_THREAD = $0002;
PROCESS_VM_OPERATION = $0008;
PROCESS_VM_READ = $0010;
PROCESS_VM_WRITE = $0020;
PROCESS_DUP_HANDLE = $0040;
PROCESS_CREATE_PROCESS = $0080;
PROCESS_SET_QUOTA = $0100;
PROCESS_SET_INFORMATION = $0200;
PROCESS_QUERY_INFORMATION = $0400;
PROCESS_ALL_ACCESS =
STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or $0FFF;
begin
hSnapshoot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnapshoot = -1) then
Exit;
pe32.dwSize := SizeOf(TProcessEntry32);
if (Process32First(hSnapshoot, pe32)) then
repeat
s:=pe32.szExeFile;
{В переменной s - имя и полный путь процесса,
в итоге после выполнения цикла ты можешь получить
список всех активных процессов, даже
если они скрытые, если будешь где-нибудь
запоминать s}
until not Process32Next(hSnapshoot, pe32);
CloseHandle (hSnapshoot);
end;
deNNis (2001-11-10 13:29:00) [2]> Alien ©
АБАЛДЕННЫЙ совет! :))))))))))
Alien (2001-10-31 23:00:00) [3]Можно ещё проще... попытайся его удалить... если не получится, тогда запущен, а если получится, значит... не был :)
Anatoly Podgoretsky (2001-10-31 16:51:00) [4]Самое простое это попытаться его открыть в монопольном режиме, смотри методы TFileStream