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

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

Проверка не запущена ли уже эта программа [D7]


Страницы:   1 2

Надежда ©   (2007-08-07 15:12:00) 

Как можно в своей программе проверить не запущена ли уже эта программа на компьютере ? Пожалуйста, подскажите!


Сергей М.   (2007-08-07 16:49:00) [21]

[7], [8]

О боже)


Virgo_Style   (2007-08-07 16:47:00) [22]

l_v   (07.08.07 16:45) [7]

Если же программа вдруг упала - не вопрос, лезешь в реестр и ручками правишь значение


l_v   (2007-08-07 16:45:00) [23]

можно к примеру через реестр:
при запуске проверять значение какого-то созданного тобой параметра в реестре, если 0, то программа единственная и можно дальше работать и потом сразу же пишешь в этот параметр 1, а при завершении работы пишешь в тот параметр 0, если допустим 1, то значит прога запущена и выход.


Сергей М.   (2007-08-07 15:39:00) [24]


> Надежда   (07.08.07 15:37) [5]


см., к примеру, GlobalAddAtom, GlobalFindAtom, GlobalDeleteAtom


Надежда   (2007-08-07 15:37:00) [25]

Окон в программе действительно нет. Есть моя программка, перекачивающая данные из одного хранилища в другое. Работает нормально. Но её не видно и иногда даже сама пытаюсь запустить её второй раз. А вот этого уже нельзя делать. Вот и требуется проверять : а не запустила ли я её уже. А с других рабочих мест она запускается по расписанию. Так что надеяться только на "человеческий фактор" не приходится. Посоветуйте, пожалуйста, как быть ?


JanMihail   (2007-08-07 15:32:00) [26]


> Какое нафих окно, если программа как таковая вовсе не обязана
> создавать какие бы то ни было окна ?

Но я так предполагаю, что автор новичок. И он не знает еще, что прога бывает без окон. Наверняка он запустил Delphi и появилась форма. Он и думает, что это и есть прога


Сергей М.   (2007-08-07 15:27:00) [27]


> JanMihail ©   (07.08.07 15:26) [2]
>
> Ищешь окно по классу и по заголовку окна


Какое нафих окно, если программа как таковая вовсе не обязана создавать какие бы то ни было окна ?


Сергей М.   (2007-08-07 15:26:00) [28]

Что такое "эта программа" ?


JanMihail   (2007-08-07 15:26:00) [29]

Ищешь окно по классу и по заголовку окна. Так как это твоя программа, ты их знаешь. Если такое есть, значит запущена.

if FindWindow(<класс окна>, <заголовок окна>) <> 0 then
 ShowMessage('Прога запущена')
else
 ShowMessage('Прога не запущена');


Ну это как простой вариант. Может быть и другая программа с таким классом и заголовком. Поэтому желательно какой-либо отличительный признак. Например создать класс TMyProgramAndTolkoMyProgram наследником класса TEdit. Затем поместить его на форму. И сделать проверку на еще одно условие.

if FindWindowEx(<хэндл окна>, 0, 'TMyProgramAndTolkoMyProgram', nil) <> 0 then
 ShowMessage('Прога точно запущена')
else
 ShowMessage('Прога точно не запущена');


Страницы:   1 2

Наверх

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