Forumi
Home Pravila i pomoć Članovi Kalendar Današnji postovi


Povratak   PC Ekspert Forum > Računala > Software > Web dizajn, programiranje i ostalo
Ime
Lozinka

Odgovori
 
Uređivanje
Staro 18.07.2007., 15:04   #1
Marko44
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?
Marko44 je offline   Reply With Quote
Staro 18.07.2007., 15:29   #2
Nikky
Moderator
 
Nikky's Avatar
 
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).
Nikky je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 19.07.2007., 09:23   #3
Marko44
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.
Marko44 je offline   Reply With Quote
Staro 19.07.2007., 11:26   #4
pelos
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.
pelos je offline   Reply With Quote
Staro 19.07.2007., 11:37   #5
Nikky
Moderator
 
Nikky's Avatar
 
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
Nikky je offline   Reply With Quote
Staro 19.07.2007., 15:59   #6
domy_os
EMP moderator
 
domy_os's Avatar
 
Datum registracije: Apr 2005
Lokacija: Osijek
Postovi: 18,431
Selim na Programiranje...
domy_os je offline   Reply With Quote
Staro 20.07.2007., 15:49   #7
Marko44
Registered User
 
Datum registracije: Jan 2007
Lokacija: Zagreb
Postovi: 20
Puno hvala svima na pomoci. Rijeseno
Marko44 je offline   Reply With Quote
Staro 06.08.2007., 12:36   #8
Friday
Proktolog
Moj komp
 
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.
Friday je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Odgovori



Pravila postanja
Vi ne možete otvarati nove teme
Vi ne možete pisati odgovore
Vi ne možete uploadati priloge
Vi ne možete uređivati svoje poruke

BB code je Uključeno
Smajlići su Uključeno
[IMG] kod je Uključeno
HTML je Isključeno

Idi na