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