www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Kako preprečiti večkraten zagon iste DOS aplikacije?

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programska oprema
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14676
Aktiv.: 61.80
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Maj 06, 2007 3:46 pm    Naslov sporočila: icon_question Kako preprečiti večkraten zagon iste DOS aplikacije? Odgovori s citatom

Zadeva je sledeča. V Clipperju sem spisal en programček. Zadevo uporablja več uporabnikov. Dostikrat se zgodi, da ga kdo namesto, da bi ga zaprl minizira. Drug uporabnik pa ga ponovno požene. Ker je od zadaj baza -programa pa nisem pisal kot mrežnega le ta "crkne". Trenutno sem rešil tako, da sem progam "skril" uporabnikom pa povedal, naj ga ne zapirajo ampak le minzirajo. Zanima me, če je onemogočenje podvojenega zagona istega programa možno nastaviti kje v Widnowsih (XP)? ,sicer se bom zadeve moral lotiti programsko - nastaviti eno datotko v katero bom označeval, če je program zagnan. Clipper, koliko se spomnim nima kake take funkcije?
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.51

PrispevekObjavljeno: Ned Maj 06, 2007 4:00 pm    Naslov sporočila:   Odgovori s citatom

Naredi batch file, ki pozene aplikacijo samo ce lock file ne obstaja. Ob zagonu aplikacije ta batch file naredi lock file, ob izhiodu ga pa pobrise.

Koda:

@echo off
if exist lock_file.txt goto exit

echo "Program tece" > lock_file.txt

ime_aplikacije.exe

delete lock_file.txt

:exit

_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 12.43
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Ned Maj 06, 2007 4:29 pm    Naslov sporočila:   Odgovori s citatom

Sem malo pregledal internet. Lažjega načina ni, obstajajo samo lepši, ki preverijo med procesi če program dejansko teče. Če bi kaj takega potreboval, ti lahko spišem na hitro.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
VolkD
Član
Član



Pridružen-a: Pet 24 Sep 2004 21:58
Prispevkov: 14228
Aktiv.: 59.91
Kraj: Divača (Kačiče)

PrispevekObjavljeno: Ned Maj 06, 2007 4:53 pm    Naslov sporočila:   Odgovori s citatom

Tak batch file lahko povzroči tudi kako težavo. Če se stvari ne končajo normalno (izpad elektrike) naslednjič noče delati.
_________________
Dokler bodo ljudje mislili, da živali ne čutijo, bodo živali čutile, da ljudje ne mislijo.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 12.43
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Ned Maj 06, 2007 5:53 pm    Naslov sporočila:   Odgovori s citatom

Izvoli. Na hitro spisano:

Najprej poženi prvi program TopWindow, ki ti pove Class in Caption od aktivnega okna. To moraš zabeležiti.

Potem tvojo aplikacijo poganjaš z RunOnce, ki mu daš tri parametre:

prvi je Class, drugi je Caption in tretji je exe file, ki naj se izvede. Če ne bo delovalo povej...

Primer klica:
Koda:
RunOnce SciCalc Calculator "C:\Windows\System32\Calc.exe"



RunOnce.zip
 Opis:

Download
 Ime datoteke:  RunOnce.zip
 Velikost datoteke:  375.87 KB
 Downloadano:  5 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14676
Aktiv.: 61.80
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Maj 06, 2007 6:48 pm    Naslov sporočila:   Odgovori s citatom

Hvala vsem za nasvete. Sem malo prelistal NG za Clipper. Le ta ima prav simpatično funkcijo used() ki vrne .f. če je baza že v uporabi. (se vidi, da s Clipperjem nisem delal, že skoraj 15 let Sad )

Dodatek teh par vrstic bo (je) rešilo težavo.

Koda:
use podatki

if used()=.f.
alert('Program je ze zagnan')
quit
endif   


_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.51

PrispevekObjavljeno: Ned Maj 06, 2007 7:53 pm    Naslov sporočila:   Odgovori s citatom

VolkD je napisal/a:
Tak batch file lahko povzroči tudi kako težavo. Če se stvari ne končajo normalno (izpad elektrike) naslednjič noče delati.


To je res - no odporno na budale Very Happy Ob zagonu racunalnika bi moral lock eksplicitno brisati. Drugi potencialen problem bi bil race condition, a le na zaresnih OSih, ne v Windowsih, ki so prakticno single-user.

_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programska oprema Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 7 dni


Powered by phpBB © 2001, 2005 phpBB Group