Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 03.07.2009, 21:43   #1
Evgenii
Форумчанин
 
Аватар для Evgenii
 
Регистрация: 04.01.2008
Сообщений: 201
По умолчанию несколько одновременно работающих копий программы - ?

exe файл Delpfi можно запустить несколько раз. тем самым получется несколько одновременно работающих копий. вот как бы такую ситуацию недопустить? чтобы когда была запущена одна копия, вторую запустить уже было нельзя?
Evgenii вне форума
Старый 03.07.2009, 21:48   #2
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
...
uses syncobjs;
...
var
  CheckEvent: TEvent;

...

procedure TForm1.FormCreate(Sender: TObject);
begin
  CheckEvent := TEvent.Create(nil, false, true, 'MYPROGRAM_CHECKEXIST');
  if CheckEvent.WaitFor(10) <> wrSignaled then
  begin
    // Сюда попадаем если одна копия уже запущена.
    // Можно, например, сообщить об этом пользователю.
    Self.Close; // Здесь можно завершить программу или сделать еще что-нибудь.
  end;
end;
DW там еще 12 способоввот тут еще посмотри
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.

Последний раз редактировалось ОДИНОЧЕСТВО В СЕТИ; 03.07.2009 в 22:04.
ОДИНОЧЕСТВО В СЕТИ вне форума
Старый 05.07.2009, 16:21   #3
Demien
Форумчанин
 
Аватар для Demien
 
Регистрация: 01.08.2007
Сообщений: 222
По умолчанию

Я ползуюсь таким способом:

С помощью блокнота открыть файл ‘название проэкта'.dpr и ввести примерно следующее:
(В делфи после этого при компиляции программа не запускается! Только с “*.exe”)

Код:
program Project1;

uses
  Forms,
  Windows,    \\Добавить 
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

 var
  hwnd: THandle;
  begin
   hwnd:= FindWindow('TForm1', 'Тут ставишь название окна программы (Caption)');
    if hwnd = 0 then
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
 end
 else
SetForegroundWindow(hwnd);
end.
Жить тоже вредно, от этого умирают!!!
Demien вне форума
Старый 06.07.2009, 09:38   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Обсуждалось неоднократно
I'm learning to live...
Stilet вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запустить несколько копий одной и той же программы? murcot Помощь студентам 4 20.02.2009 11:28
Распространение приложений работающих с различными видами БД ThreeADo БД в Delphi 4 14.05.2007 15:02
Написание программы на API. Несколько вопросов на эту тему. kalexi Win Api 2 05.04.2007 19:39
Вставка даты в несколько DBDateTimeEditEh одновременно!? John_chek Компоненты Delphi 3 12.02.2007 16:34