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

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

Определить статутус программы. [D7, WinXP]


Cara ©   (2006-10-20 11:07:00) 

Добрый день. Требуется определить работает (т.е. запущена ли) программа или нет.


Cara   (2006-10-24 17:18:00) [1]

1. Windows не даст. Ошибка: Не удаётся удалить приложение, возможно оно занято другой программой или пользователем и т.д. 2. Это не корректно по отношению к Б.Д.


Anatoly Podgoretsky   (2006-10-24 17:04:00) [2]

Не надо, просто удаляй, если не получится, то работает, при условии, что у тебя есть права на удаление.


Cara   (2006-10-24 16:55:00) [3]

Если оператор работает с программой, я естественно не могу удалить exe файл, мне надо проверить, программа запущена, или нет.


Ketmar   (2006-10-20 20:08:00) [4]

в данном случае не "eggs", а "balls".


Ученик чародея   (2006-10-20 19:52:00) [5]

Тогда попробуй отрыть екзешник на чтение с эксклюзивными правами, а при екзепшене выдавай сообщение - "Закрыть программу мигом, шеф эти штуки вырвет..."


var FStr:TFileStream;

try
  FStr:=TFileStream.Create('Filename',fmOpenRead or fmShareExclusive);
 FStr.Free;
except on E:Exception do
begin
 FStr.Free;
 MessageBox(Application.Handle, 'If you not close program, so that your BOSS get your EGGS!!!','Attention, attention!!!',MB_OK or MB_ICONWARNING);
end;


Чародей   (2006-10-20 17:48:00) [6]


> Есть магазин. Там 2 кассы. очень часто приходиться менять экзешники на кассах


И все это время магазин работает на не рабочих екзешниках!!!??? Или в екзешниках обнавляеся прайс !!! :)


Cara   (2006-10-20 17:36:00) [7]

Спасибо. Но всё немного не так. Есть магазин. Там 2 кассы. БД лежит на сервере. Кассы обращаются к ней. Программа постоянно дорабатывается,и очень часто приходиться ездить с флешкой и менять экзешники на кассах. Это очень неудобно, так как приходиться тратить время на дорогу. Есть возможность пересылать фалы через ФТП. Надо сделать прогу, которая будет сама получать файлы с сервера, отключать (давать операторам сообщение) работающие кассы, и менять экзешники. Всё, кроме определения работающего экзешника уже сделал.


Elen   (2006-10-20 12:53:00) [8]


>  Для этого надо знать, работает ли оператор с программой

Если программа твоя то можно встроить в нее Сокеты и общаться, давать команды. Намек ясен?


Anatoly Podgoretsky   (2006-10-20 12:38:00) [9]

Для этого не надо определять статус, надо просто менять и обрабатывать ошибку.


Cara   (2006-10-20 12:15:00) [10]

Надо поменять файл на рабочей станции. Для этого надо знать, работает ли оператор с программой. Если да, то попросить его выключить программу. Ежели нет, то просто заменить файл.


Cara   (2006-10-20 12:14:00) [11]

Надо поменять файл на рабочей станции. Для этого надо знать, работает ли оператор с программой. Если да, то попросить его выключить программу. Ежели нет, то просто заменить файл.


Elen   (2006-10-20 11:17:00) [12]


> Cara

Добавлю :
var p:PROCESSENTRY32;ct:cardinal;
begin
ct:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
Process32First(ct,p);
  ListBox1.Items.Append(string(p.szExeFile));
while Process32Next(ct,p) do
  ListBox1.Items.Append(string(p.szExeFile));
end;

В списке будут имена экзешников.


palva   (2006-10-20 11:10:00) [13]

А если посмотреть, какие процессы работают в системе?


Elen   (2006-10-20 11:10:00) [14]


>  (т.е. запущена ли)

CreateToolhelp32Snapshot,


Наверх

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