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

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

Как определить, запущен ли определенный файл? [D5, WinXP]


smok_er ©   (2002-10-27 12:43:00) 

Уважаемые знатоки! Вопрос конечно уже сто раз обсуждался, но нужен срочный ответ, а времени рыться в факах нет :(
Как получить список всех запущенных приложений? Конкретнее, надо узнать, запущен ли файл, к примеру C:\Program Files\1\1.exe или нет.

Заранее огромное спасибо!


smok_er   (2002-10-28 23:11:00) [1]

Огромное спасибо!
Все замечательно работает!


LENIN INC   (2002-10-27 13:28:00) [2]

Можно проверить используется ли файл в данный момент:

Function ApplicationUse(fName : string ) : boolean;
var
HFileRes : HFILE;
begin
Result := false;
if not FileExists(fName) then exit;
HFileRes := CreateFile(pchar(fName), GENERIC_READ or GENERIC_WRITE,0, nil,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, 0);
Result := (HFileRes = INVALID_HANDLE_VALUE);
if not Result then CloseHandle(HFileRes);
end;

//пример использования функции:
procedure TForm1.Button1Click(Sender: TObject);
begin
if ApplicationUse("c:\project1.exe") then
ShowMessage("Application in use")
else
ShowMessage("Application not in use");
end;


Cobalt   (2002-10-27 13:24:00) [3]

Если конкретного файла, то можно просто попробовать открыть его на запись. Если не получиться - значит запущен.
Сами подумайте - кто же будет читать из ехе-ка просто так?


Наверх

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