Вниз
Скачать: 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.056 c
6-1088184010
Снифер
2004-06-25 21:20
2004.08.29
NLO


8-1086892318
hgd
2004-06-10 22:31
2004.08.29
Общий вопрос про 3d


3-1091625059
serg128
2004-08-04 17:10
2004.08.29
Как выгрузить в TStringList содержимое CLOB-поля в Oracle?


3-1091834330
yozh_programmer
2004-08-07 03:18
2004.08.29
Извлечение данных из готового набора!


3-1091774380
Максим
2004-08-06 10:39
2004.08.29
Многопользовательский режим




   Наверх