|
![]() |
#1 |
Registered User
Datum registracije: Jan 2007
Lokacija: Zagreb
Postovi: 20
|
Disable runing multiple instaces of exe at same time
Imam ovakav problem: imam exe file koji se ne smije pokretati jos jednom kad je vec jedamput pokrenut. Znaci pitanje je na koji nacin mogu napraviti da se pri pokretanju tog exe file-a (ili bat filea koji pokrece doticni exe file) provjerava jeli doticni vec pokrenut i ako je da onemoguci pokretanje nove instance tog istog exe filea sve dok se postojeca instanca pokrenutog filea ne ugasi. Dali ima tko kakvu skriptu ili neki drugi nacin da se to napravi? |
![]() |
![]() |
![]() |
#2 |
Moderator
Datum registracije: Sep 2006
Lokacija: St
Postovi: 22,699
|
Ima više načina da se to postigne. Zavisi šta ti stoji na raspolaganju. Najelegantnije rješenje kontrolna rutina unutar samog exe - a. Sve se svodi na detekciju aktivnih procesa (programa). |
![]() |
![]() |
|
|
Oglas
|
|
![]() |
#3 |
Registered User
Datum registracije: Jan 2007
Lokacija: Zagreb
Postovi: 20
|
E da ali to nije opcija. Znaci nesmijem mijenjati exe file odnosno kod, a i ne mogu jer nemam kod. Moram to rijesiti nekim batch fileom ili na neki slican nacin. |
![]() |
![]() |
![]() |
#4 |
Registered User
Datum registracije: Jul 2007
Lokacija: Unknown
Postovi: 8
|
Ako ne smijes mjenjati kod, mogao bi jednostavno napisati neki svoj mali wrapper oko tog exe-a. Tako da direktno ne pokrenes taj program nego svoj. A onda tvoj program pogleda da li je vec pokrenut. Mozes standardni trik s CreateMutex() i WaitForSingleObject(). Ili taj tvoj program moze bas pretrazivati listu procesa u potrazi za tim programom. |
![]() |
![]() |
![]() |
#5 |
Moderator
Datum registracije: Sep 2006
Lokacija: St
Postovi: 22,699
|
Neznam koji ti razvojni alati stoje na raspolaganju i kako se snalaziš u programiranju. Možda bi se i moglo napraviti kroz nekakav batch ali bi opet trebao i dodatni program koji vraća info o aktivnim procesima (postoji). Možda ti je jednostavnije da napraviš jednu vrstu loadera (njega uvjek pozivaš) a on odlučuje dali će startati određeni exe. Probaj napraviti programčić sa AutoIt - om: http://www.autoitscript.com/autoit3/downloads.php Primjer Process liste: http://www.autoitscript.com/forum/in...0&#entry258681 |
![]() |
![]() |
![]() |
#6 |
EMP moderator
Datum registracije: Apr 2005
Lokacija: Osijek
Postovi: 18,431
|
Selim na Programiranje... |
![]() |
![]() |
![]() |
#7 |
Registered User
Datum registracije: Jan 2007
Lokacija: Zagreb
Postovi: 20
|
Puno hvala svima na pomoci. Rijeseno |
![]() |
![]() |
![]() |
#8 |
Proktolog
Datum registracije: Oct 2005
Lokacija: Dublin
Postovi: 286
|
Najjednostavnije ti je da napraviš batch koji će prvo ubiti postojeće procese sa tim imenom: TASKKILL /F /IM program.exe c:\program.exe Ovo je pod uvjetom da se izvršna datoteka zove program.exe i da je snimljena u root C diska. Možeš imati i dodatne filtere (po threadid-u, korisniku koji je pokrenuo, statusu aplikacije [not responding npr.] i sl)
__________________
Freak Show Inc. |
![]() |
![]() |
|
|
Oglas
|
|
![]() |
|
|