PC Ekspert Forum

PC Ekspert Forum (https://forum.pcekspert.com/index.php)
-   Web dizajn, programiranje i ostalo (https://forum.pcekspert.com/forumdisplay.php?f=39)
-   -   Disable runing multiple instaces of exe at same time (https://forum.pcekspert.com/showthread.php?t=74903)

Marko44 18.07.2007. 15:04

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?

Nikky 18.07.2007. 15:29

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).

Marko44 19.07.2007. 09:23

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.

pelos 19.07.2007. 11:26

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.

Nikky 19.07.2007. 11:37

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

domy_os 19.07.2007. 15:59

Selim na Programiranje...

Marko44 20.07.2007. 15:49

Puno hvala svima na pomoci. Rijeseno

Friday 06.08.2007. 12:36

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)


Sva vremena su GMT +2. Sada je 21:54.

Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 1999-2024 PC Ekspert - Sva prava pridržana ISSN 1334-2940
Ad Management by RedTyger