Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 1.868 pregleda

Najnovija ↓

Broj pokrenutih instanci programa 09.11.2021. u 12:58 · pre 60 meseci #1
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?
Re: Broj pokrenutih instanci programa 09.11.2021. u 16:39 · pre 60 meseci #2
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.

Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Broj pokrenutih instanci programa 10.11.2021. u 02:34 · pre 60 meseci #3
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.
Potpis
http://pedja.supurovic.net - http://wireless.uzice.net - Besplatni .RS domeni - Mikrotik uputstva - YT9TP - OpenStreetMap Srbija
Re: Broj pokrenutih instanci programa 10.11.2021. u 09:51 · pre 60 meseci #4
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;
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme