Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Sprijecavanje pokretanja aplikacije dvaput ?

[es] :: Pascal / Delphi / Kylix :: Sprijecavanje pokretanja aplikacije dvaput ?

[ Pregleda: 1443 | Odgovora: 8 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Raol Duke
Sviltica
Banja Luka

Član broj: 72999
Poruke: 6
81.93.95.*



Profil

icon Sprijecavanje pokretanja aplikacije dvaput ?08.11.2005. u 20:59


Dali postoji neka opcija u Delphi-ju da spirijeci pokretanje dve instance jedne aplikacije, odnosno da pri pokretanju drugi put prikaze prvu instancu.
Znate vec na sta misilm.

08.11.2005. u 20:59 

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

Član broj: 32202
Poruke: 3869
*.yu1.net.

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon Re: Sprijecavanje pokretanja aplikacije dvaput ?08.11.2005. u 21:48
mozes pri pokretanju aplikacije sa FindWindow da trazis naslov tvog prozora i ako dobijes neki handle (razlicit od 0) onda da izbacis poruku/ugasis svoju aplikaciju, mada je meni lakse da bacim ovo na formu...
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
08.11.2005. u 21:48 

Trodmi

Član broj: 58036
Poruke: 143
212.200.67.*

Sajt: www.delcode.com


Profil

icon Re: Sprijecavanje pokretanja aplikacije dvaput ?08.11.2005. u 21:57
Evo probaj sa ovim unitom, imas i full source code a koristis je sa:


program Project1;

uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
CheckPrevious in 'CheckPrevious.pas';

{$R *.res}

begin
//samo jedna instanca programa je dozvoljena
if not CheckPrevious.RestoreIfRunning(Application.Handle, 1) then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.
Prikačeni fajlovi
08.11.2005. u 21:57 

Brkic
Ilija Brkic
Sombor

Član broj: 55360
Poruke: 419
217.24.27.*



Profil

icon Re: Sprijecavanje pokretanja aplikacije dvaput ?08.11.2005. u 23:01

Mutexima, ubaci ovo u Form.Create glavne forme

var
fMutex : THandle;

begin
try
{ create our mutex }
fMutex := CreateMutex(nil,
FALSE,
@Application.Title[1]);

{ test mutex to see if we need to terminate or not }
if ( GetLastError() = ERROR_ALREADY_EXISTS ) or
( WaitForSingleObject(fMutex,100) = WAIT_TIMEOUT ) or
( fMutex = 0 ) then
begin
{ terminate our application }
Application.Terminate;
end;

finally
{ free our created mutex }
ReleaseMutex(fMutex);
end;
08.11.2005. u 23:01 

Taranto

Član broj: 67452
Poruke: 102
*.rcub.bg.ac.yu.



Profil

icon Re: Sprijecavanje pokretanja aplikacije dvaput ?17.01.2006. u 12:09
Resenje je prosto.
Iskoristi projektni obrazac SINGLETON. (mala mudrolija sa konstruktorom)

Pozdrav...
S.
17.01.2006. u 12:09 

bondja

Član broj: 10286
Poruke: 131
*.adsl.sezampro.yu.



Profil

icon Re: Sprijecavanje pokretanja aplikacije dvaput ?17.01.2006. u 14:33
@Taranto
mudrolija sa konstruktorom -?!? NIJE U PITANJU INSTANCA KLASE U PROGRAMU, VEC MAIN FORMA! ... I GDE JE PRIMER KODA AKO JE U PITANJU "mala mudrolija" ?!?

17.01.2006. u 14:33 

nikola.j
Nikola Janković

Član broj: 15712
Poruke: 83
*.com
Via: [es] mailing liste



Profil

icon Re: Sprijecavanje pokretanja aplikacije dvaput ?17.01.2006. u 16:01
>

Nije li MainForma instanca klase TMainForma?

Ko nece da se zeza sa singleton-ima, neka potrazi unit oneinstance.pas od Igora
Savkica.
17.01.2006. u 16:01 

Passwd

Član broj: 54624
Poruke: 640
*.adsl.net.t-com.hr.



Profil

icon Re: Sprijecavanje pokretanja aplikacije dvaput ?17.01.2006. u 19:32
Lol, sta komplicirate stvar kad je ovo najzesce rjesenje..

Citat:
JaHvram: mozes pri pokretanju aplikacije sa FindWindow da trazis naslov tvog prozora i ako dobijes neki handle (razlicit od 0) onda da izbacis poruku/ugasis svoju aplikaciju


U OnCreate forme stavis samo nesto ovako..
Code:

hnd:THandle;

begin
//...
hnd:=FindWindow(nil,'NazivMogPrograma');
if hnd<>0 then Application.Terminate;

....

17.01.2006. u 19:32 

Dejan Mitrovic
Novi Sad

Član broj: 46273
Poruke: 45
*.ftn.ns.ac.yu.

ICQ: 328765021


Profil

icon Re: Sprijecavanje pokretanja aplikacije dvaput ?02.02.2006. u 18:12
Citat:
Passwd: Lol, sta komplicirate stvar kad je ovo najzesce rjesenje..



U OnCreate forme stavis samo nesto ovako..
Code:

hnd:THandle;

begin
//...
hnd:=FindWindow(nil,'NazivMogPrograma');
if hnd<>0 then Application.Terminate;

....



+ code editor za glavnu formu (onaj u kom se nalazi TMainForma) mora biti zatvoren (sto ce zatvoriti i samu formu) u toku pokretanja programa inace ce hnd <> 0 i ako je prva instanca
02.02.2006. u 18:12 

[es] :: Pascal / Delphi / Kylix :: Sprijecavanje pokretanja aplikacije dvaput ?

[ Pregleda: 1443 | Odgovora: 8 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.