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

Broj pokrenutih instanci programa

[es] :: Pascal / Delphi / Kylix :: Broj pokrenutih instanci programa

[ Pregleda: 878 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.gs1hr.org.



+4 Profil

icon Broj pokrenutih instanci programa09.11.2021. u 11:58 - pre 29 meseci
Delphi 2007

Stanka koristi više instanci programa. Moram znati kada se pokreće prva i kada se zatvara posljednja.

Kada se pokreće prva instanca porgama sam riješio, ne uspjeva mi naći način kako otkriti da je to posljednja instanca koja se zatvara.
Ako provjeravam da li je program pokrenut - je, jer je to zadnji i još nije zatvoren.

Postoji li način kako otkriti koliko je instanci programa pokrenuto?
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Broj pokrenutih instanci programa09.11.2021. u 15:39 - pre 29 meseci
Proveravas iz samog programa ili iz nekog drugog?
Par ideja:
- Mozes da koristis zajednicku memoriju (memory mapped files) iz vise procesa pa da uvecas i smanjujes brojac kako se program startuje.
- Koristi jobove, CreateJobObject/OpenJobObject, AssignProcessToJobObject, QueryInformationJobObject. Svaki startovani proces uzme koristi isti job (jedinstven naziv) i doda samog sebe u job.


 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6275

Sajt: pedja.supurovic.net


+1570 Profil

icon Re: Broj pokrenutih instanci programa10.11.2021. u 01:34 - pre 29 meseci
DAvno sam radio sa tim, ali koliko se sećam niej bio problem da iz svoej aliakciej pristupiš svim aktivnim apliakcijama i pobrojiš ih. To se običnokorsiti da onemogućiš da se ista apliakciaj pokrene dva ili više puta, ali ne vidim što ne bi i tebli poslužilo.

Na brzinu iskopah ovo: http://www.delphidabbler.com/articles/article-13

Dakle prosto pobrojiš apliakcije koje imaju isti windwosclass i ako ima samo jedna onda je to to.

 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.xnet.hr.



+4 Profil

icon Re: Broj pokrenutih instanci programa10.11.2021. u 08:51 - pre 28 meseci
Hvala na pomoći. Našao sam rješenje - fun. koja vraća broj pokrenutih instanci programa. Pa ako kome zatreba...
Code:


uses ... , tlHelp32;


function TForm1.CheckProcessCount(const ExeName: String): Integer;
var
   NextProcessLoop: BOOL;
   FHandle: THandle;
   FProcessEntry32: TProcessEntry32;
   fExeName: string;
begin
   if ExeName <> '' then fExeName := ExtractFileName(ExeName)
   else fExeName := ExtractFileName(Application.ExeName);
   
   FHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
   FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
   NextProcessLoop := Process32First(FHandle, FProcessEntry32);
   Result := 0;

   while Integer(NextProcessLoop) <> 0 do
   begin
      if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(fExeName)) or
      (UpperCase(FProcessEntry32.szExeFile) =UpperCase(fExeName))) then Inc(Result);
      NextProcessLoop := Process32Next(FHandle, FProcessEntry32);
   end;
   CloseHandle(FHandle);
end;
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Broj pokrenutih instanci programa

[ Pregleda: 878 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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