Вниз
Скачать: CL | DM;

вторая копия проги   Найти похожие ветки 

← →
AlexeyM   (2004-08-15 02:32) [0]

Есть много способов не запустить вторую копию проги (примеры брал из DelphiWorld) но работают тока пример с Mutex
а хочется еще чтоб при запуске второй проги вторая не пускалась а первая выходила на экран если закрыта другими окнами


← →
TUser ©   (2004-08-15 02:36) [1]

var h:hwnd;
begin
  Initialize;
  h:=FindWindow;
  if h = 0 then
     ...
     else SetForegroundFindow(h);
end;

Тут с IDE будет трабл - там есть такая же форма с таким же заголовком/классом. Лучше Caption главной формы днамически прописывать.


← →
AlexeyM   (2004-08-15 02:42) [2]

дельфи говорит что не знаком с  SetForegroundFindow


← →
Fay ©   (2004-08-15 02:44) [3]

BOOL SetForegroundWindow(
 HWND hWnd   // handle to window
);

Обитает в User32.dll

P.S.
и в модуле Windows 8)


← →
AlexeyM   (2004-08-15 02:46) [4]

сделал так
program IEpasw;

uses
 Forms,
 Windows,
 main in "main.pas" {IEpassword},
 only_one in "only_one.pas";

{$R *.res}

const
 UniqueString = "MyProgramMutex";
   {Ìîæåò áûòü ëþáîå ñëîâî. Æåëàòåëüíî ëàòèíñêèìè áóêâàìè.}
 var h:hwnd;
begin
  if not init_mutex(UniqueString) then begin
  h:=FindWindow("TIEpassword", "IEpassword");
 if h = 0 then

    else SetForegroundwindow(h);
     exit; {Âûõîäèì äî èíèöèàëèçàöèè, åñëè ìüþòåêñ óæå åñòü}
     end;
   Application.Initialize;

      Application.CreateForm(TIEpassword, IEpassword);
 Application.Run;

end.

но первая прога при запуске второй на экран не выходит
где у меня ошибка?


← →
TUser ©   (2004-08-15 02:55) [5]

Под отладчиком? См. [1]


← →
AlexeyM   (2004-08-15 02:56) [6]

не тестирую нажатием кнопки в IE


← →
TUser ©   (2004-08-15 03:00) [7]

if h = 0 then

   else SetForegroundwindow(h);
Это вообще-то компилируется?
Initialize лучше вперед поставь


← →
Anatoly Podgoretsky ©   (2004-08-15 07:39) [8]

Этот не метод не гарантирует от повторного запуска, а вот Mutex гарантирует


← →
Юрий Зотов ©   (2004-08-15 07:52) [9]

> AlexeyM

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=904


← →
TUser ©   (2004-08-15 10:51) [10]


> Этот не метод не гарантирует от повторного запуска, а вот
> Mutex гарантирует

А почему? Если приложение запущено и главная форма его никуда не делась ...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.039 c
6-1088425968
castanye
2004-06-28 16:32
2004.08.29
Устнавить статус соединения по локальной сети !


1-1092314375
Cosinus
2004-08-12 16:39
2004.08.29
Работа с памятью


6-1088582476
adLer
2004-06-30 12:01
2004.08.29
Создание чата


14-1092289956
Кириешки
2004-08-12 09:52
2004.08.29
Чем отличается CloseProcess от Terminate Process?


14-1088092497
OSokin
2004-06-24 19:54
2004.08.29
Новый сайт




   Наверх