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

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

Запуск 1-ой копии проги! [D6, XP]


serko ©   (2006-06-16 01:03:00) 

Ребят расскажите как правильно сделать чтобы прога была запущена только в одном экземляре!
Я вот пробовал делать так:
добали в *.dpr

firstcopy:=findwindow('Tform1','Прога');
 if firstcopy <>0 then
 begin
      SetForegroundWindow(FirstCopy);
      Application.terminate;
 end;

Но так получается что если у меня окрыт проект в Delphi то при компиляции прога сразу же запускается! А не хотелось бы этого, потому как не удобно очень!

Как сделать правильно? Примерчик в студию....


Lex_!   (2006-06-21 05:08:00) [1]


> Опечаточка! Жму Run, а прога ЗАКРЫВАЕТСЯ

Так это ... где обработчик то?... Нужно ДО application.run
Иначе у тебя форма создается, и соответственно программа ее находит и закрывается...


Zhekacoder   (2006-06-20 18:42:00) [2]

Надо запустить ее 1 раз


serko   (2006-06-16 01:16:00) [3]

Sorry уже нашел!

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1150369563&n=18


> то при компиляции прога сразу же запускается!


Опечаточка! Жму Run, а прога ЗАКРЫВАЕТСЯ


Asail   (2006-06-16 01:10:00) [4]

Можно серез мутекс, например так:

function Check: boolean;
var
 HM: THandle;
begin
 HM := OpenMutex(MUTEX_ALL_ACCESS, false, 'MyMutex');
 Result := (HM <> 0);
 if HM = 0 then HM := CreateMutex(nil, false, 'MyMutex');
end;

begin
 if Check then Exit;
 Application.Initialize;
 . . .


Тока я чего-то не понял насчет автоматического запуска при компиляции...
Может, ты Run жмешь?


Наверх

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