Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.30;
Скачать: CL | DM;

Вниз

Как запретить одновременный запуск нескольких копий пронграммы   Найти похожие ветки 

 
koks   (2005-10-06 16:27) [0]

Собственно, сабж.

Хочу чтобы невозможно было запустить программу если она уже запущена.

Как это поймать...

Заранее спасибо


 
Eraser ©   (2005-10-06 16:29) [1]


> koks   (06.10.05 16:27)

http://www.rambler.ru/srch?words=%E7%E0%EF%F0%E5%F2%E8%F2%FC+%EE%E4%ED%EE%E2%F0%E5%EC%E5%ED%ED%FB%E9+%E7%E0%EF%F3%F1%EA+ %ED%E5%F1%EA%EE%EB%FC%EA%E8%F5+%EA%EE%EF%E8%E9+%EF%F0%EE%E3%F0%E0%EC%EC%FB&old_q=%EE%E4%ED%EE%E2%F0%E5%EC%E5%ED%ED%FB%E9 +%E7%E0%EF%F3%F1%EA+%ED%E5%F1%EA%EE%EB%FC%EA%E8%F5+%EA%EE%EF%E8%E9+%EF%F0%EE%E3%F0%E0%EC%EC%FB&btnG=%CD%E0%E9%F2%E8%21

Используй именованые объекты ядра.


 
clickmaker ©   (2005-10-06 16:33) [2]

CreateMutex("YourUniqueName")
if GetLastError = ERROR_ALREADY_EXISTS
 значит, уже запущено


 
IceBeerg ©   (2005-10-06 16:54) [3]

В файле проэкта:
If
uses ... windows;
...
Begin
FindWindow(PChar(String(Application.MainForm.ClassName)),PChar(Application.MainForm.Caption))<>0 Then Begin ShowWindow(FindWindow(PChar(String(Application.MainForm.ClassName)),PChar(Application.MainForm.Caption)),sw_Normal); Halt; End;
...

Вроде синтаксический контроль прошло... проверяй на работоспособность...


 
Floppy ©   (2005-10-06 18:28) [4]

А я в *.dpr, делаю так:
program Project1;
uses
 Forms,
 Unit1 in Unit1 .pas" {Form1},

{$R *.RES}

begin
 Application.Initialize;
 
 if FirstHinstanceRunning(0) then
   Exit;

 Application.CreateForm(TForm1, Form1);
 Application.Run;

end.


 
Андрей Жук ©   (2005-10-06 18:59) [5]

const
 MemFileSize = 127;
{$IFDEF TEST_PROGRAMM}
 MemFileName = "mydb_home_memfile_test";
{$ELSE}
 MemFileName = "mydb_home_memfile";
{$ENDIF}

var
 Text, Caption: string;
 hwnd: THandle;
 IsOurApplicationRunning: boolean;
begin
 hwnd := FindWindow("TFormMain", nil);
 MemHnd := CreateFileMapping(THandle($FFFFFFFF), nil,
   PAGE_READWRITE, 0, MemFileSize,
   MemFileName);
 IsOurApplicationRunning := (GetLastError <> ERROR_ALREADY_EXISTS) or (hwnd = 0);
 if IsOurApplicationRunning then
 begin
   Application.Initialize;
   Application.Title := "Моя велика база даних";
   Application.CreateForm(TFormMain, FormMain);
 Application.CreateForm(TDataModuleMain, DataModuleMain);
 Application.Run;
 end
 else
   begin
    ShowWindow(hwnd, SW_SHOWMAXIMIZED);
    SetForegroundWindow(hwnd);
   end;
end.




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

Текущий архив: 2005.10.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.038 c
14-1129097189
Priest
2005-10-12 10:06
2005.10.30
Flash Mp3 плеер


2-1128689534
Id
2005-10-07 16:52
2005.10.30
Не могу создать базу


3-1125345031
Piter
2005-08-29 23:50
2005.10.30
Коннект к базе в дополнительном потоке


1-1128354172
Alex_1234
2005-10-03 19:42
2005.10.30
Подскажите алгоритм реализацию "плагинной" программы...


11-1109622535
Shanker
2005-02-28 23:28
2005.10.30
Баг в MCK?