Srodne teme
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Skript "upisi trenutno vreme u neki.fajl; pokreni prog; upisi vreme u neki.fajl;

[es] :: Skript jezici :: Skript "upisi trenutno vreme u neki.fajl; pokreni prog; upisi vreme u neki.fajl;

[ Pregleda: 5136 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

luner
Donald Secret
ISP admin

Član broj: 80
Poruke: 171
195.252.118.*

Sajt: www.lun.co.yu


Profil

icon Skript "upisi trenutno vreme u neki.fajl; pokreni prog; upisi vreme u neki.fajl;12.09.2002. u 18:08 - pre 262 meseci
Pošto nisam baš vičan programiranju za Windows platforme treba mi pomoć oko ovakvog programčića. Evo šta mi je potrebno:

Da ima programčić koji ima svoj log fajl i da uradi sledeću stvar:

Kada se pokrene taj program on treba da:
u svoj log fajl upiše trenutno vreme;
pokrene neki drugi program;
kada se pokrenuti eksterni program završi, pvaj programčić treba da u log fajl upiše trenutno vreme;

Poželjno je da pri upisu vremena u log fajl upiše i kratke stringove (recimo "početak" i "kraj").

Za ovo nisu potrebne nikakve grafike (čak je poželjno da taj programčić bude potpuno nevidljiv).

Ja sam ovako nešto pokušao da izvedem pomoću .bat fajla:

program_za_upis_pocetnog_vremena.exe >> log.fajl
eksterni_program.exe
program_za_upis_krajnjeg_vremena.exe >> log.fajl

dva navedena programa za upis vremena su jednostavni pascal programi koji samo ospisuju string tipa "start:XX:XX:XX" i "stop:XX:XX:XX".

Medjutim, ovo ne radi. Posto je ovo bat fajl koji je linkovan sa desktop-a win98 kada se pokrene on upise start:vreme, pokrene eksterni program i odmah (ne čeka da eksterni program završi sa radom) upiše i stop:vreme. Najčešće se ova dva vremena poklapaju ili odstupaju maksimalno za sekundu.

Šta je uzrok ovome i kako to rešiti?

Eventualno (ukoliko neko ima vremena) bio bih zahvalan da mi neko napiše programčić koji bi se sastojao od:
izvršnog fajla - (koji bi u log fajl upisivao stringove start:vreme, pokretao eksterni program i kad eksterni program završi sa radom upisao stop:vreme u log fajl)

log fajla - (fajl u koji se upisuju start:vreme i stop:vreme stringovi)

konfiguracionog fajla - (fajl u kome bi se nalazila putanja do eksternog programa)

(program bi trebao da bude nevidljiv - recimo pisan u pakalu ili tako nečemu)

Pozdrav i hvala unapred!
*************************************
 
Odgovor na temu

StratOS
Slovenija

Član broj: 2234
Poruke: 989
*.ce.sik.si



+1 Profil

icon Re: Skript "upisi trenutno vreme u neki.fajl; pokreni prog; upisi vreme u neki.fajl;10.10.2003. u 09:58 - pre 249 meseci
Citat:
luner:
čak je poželjno da taj programčić bude potpuno nevidljiv
Pozdrav i hvala unapred!


Potpuno=NOP

Hm, nisam te tocno razumeo sto program treba da radi (trackuje programe koje sam startujes i logira application start i end ?)

Mogao bi da napravim to u VB-u
a sto se tiche bat fajla u Win9x/NT OS-ima

(Za XP, no mislim da je slicno za win9x)
COMMAND [[drive:]path] [device] [/E:nnnnn] [/P] [/C string] [/MSG]

[drive:]path Specifies the directory containing COMMAND.COM file.
device Specifies the device to use for command input and output.
/E:nnnnn Sets the initial environment size to nnnnn bytes.
/P Makes the new command interpreter permanent (can't exit).
/C string Carries out the command specified by string, and then stops.

/MSG Specifies that all error messages be stored in memory. You
need to specify /P with this switch.

Pozdrav StratOS
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications."
"The one who is digging the hole for the other to fall in is allready in it."
 
Odgovor na temu

ddz
Dušan Dželebdžić
Pravni fakultet UUB
Beograd

Član broj: 3272
Poruke: 711
*.sbb.co.yu



Profil

icon Re: Skript "upisi trenutno vreme u neki.fajl; pokreni prog; upisi vreme u neki.fajl;10.10.2003. u 11:32 - pre 249 meseci
Ako hoćeš da sačekaš da se program zatvori, možeš u bat fajlu da otlucaš:

Code:
program_za_upis_pocetnog_vremena.exe >> log.fajl
start /w eksterni_program.exe
program_za_upis_krajnjeg_vremena.exe >> log.fajl


Ali time ne rešavaš problem nevidljivosti programa. Za tako nešto ćeš ipak morati da koristiš VB ili Delphi
If you can't beat your computer at chess, try kickboxing.
 
Odgovor na temu

StratOS
Slovenija

Član broj: 2234
Poruke: 989
*.ce.sik.si



+1 Profil

icon Re: Skript "upisi trenutno vreme u neki.fajl; pokreni prog; upisi vreme u neki.fajl;13.10.2003. u 09:31 - pre 249 meseci
Citat:
ddz:
Ako hoćeš da sačekaš da se program zatvori, možeš u bat fajlu da otlucaš:
Ali time ne rešavaš problem nevidljivosti programa. Za tako nešto ćeš ipak morati da koristiš VB ili Delphi


Da za win9x sisteme kod Ctrl-Alt-Del-a to se mozhe, no ako rabis neki eksterni program viewer vidi se sta je upaljeno i sta ne, no kod NT i XP sistema za stealth program treba malo vishe programskog razumjevanja i mogucheg injeciranja eksternog programa i patchiranja PE header file-a ...

Ja ti mogu napraviti VB proggy sa elementima nevidivosti na win9x sistemina, koji ce da startuje neki exe fajl i kad se taj program starta/zavrsi napisati to u log fileu.
Program ce imati INI fajl za put do eksternog programa i logove.

glede bat komandi na win9x mashinama:
C:\WINDOWS\Namizje>start /?
Zažene program za Windows ali MS-DOS.

START [stikala] program [arg...]
START [stikala] dokument.pri

/m[inimized] Program zažene minimirano (v ozadju).
/max[imized] Program zažene maksimirano (v ospredju).
/r[estored] Program zažene v obnovljenem oknu (v ospredju). [privzeto]
/w[ait] Ukazno vrstico za DOS prikaže šele, ko se program konča.

C:\WINDOWS\Namizje>command /?
Zažene dodatno kopijo ukaznega procesorja.

COMMAND [[pogon:]pot] [naprava] [/E:nnnnn] [/L:nnnn] [/U:nnn] [/P] [/MSG]
[/LOW] [/Y [/[C|K] ukaz]]
[pogon:]pot Imenik, v katerem je COMMAND.COM.
naprava Naprava za vnos ukazov in izpis rezultatov.
/E:nnnnn Nastavi začetno velikost okolja na nnnnn bajtov.
(nnnnn je število med 256 in 32.768).
/L:nnnn Določa dolžino notranjih medpomnilnikov (zahteva stikalo /P).
(nnnn je število med 128 in 1024).
/U:nnn Določa dolžino vhodnega medpomnilnika (zahteva stikalo /P).
(nnn je število med 128 in 255).
/P Novi ukazni procesor postane trajen (izstop ni mogoč).
/MSG V pomnilnik shrani vsa sporočila o napakah (zahteva stikalo /P).
/LOW Prisili ukazni procesor, da svoje trajne podatke hrani v
spodnjem pomnilniku.
/Y Korakoma izvede paketno datoteko, navedeno s stikalom /C oz. /K.
/C ukaz Ko se ukaz izvede, se COMMAND.COM konča.
/K ukaz Ko se ukaz izvede, se COMMAND.COM ne konča.


Ako si zainteresiran, javi mi !

poz. StratOS
Pozdrav StratOS
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications."
"The one who is digging the hole for the other to fall in is allready in it."
 
Odgovor na temu

StratOS
Slovenija

Član broj: 2234
Poruke: 989
*.ce.sik.si



+1 Profil

icon Re: Skript "upisi trenutno vreme u neki.fajl; pokreni prog; upisi vreme u neki.fajl;15.10.2003. u 08:49 - pre 249 meseci
Evo, malo na brzo sam napravio taj exe fajl.
Profiler.exe je VB6 program, za kojeg trebate registriranu COMDLG32.OCX (MSComDlg.CommonDialog)
http://zemssoft.netfirms.com/download/comdlg32.exe
Trebate i VB6sp5 runtime komponente (ako jih vec nemate instalirane).
http://download.microsoft.com/...5/WIN98Me/EN-US/vbrun60sp5.exe (0,99 MB)

Sam program ima mogucnost command:
'Profiler.exe install'
'Profiler.exe uninstall'
'Profiler.exe open'

u MS-DOS-u mozete da INSTALIRATE 'Profiler.exe install'
On kopira sam fajl na vash //windows// dir
sa 'uninstall' deinstalirate program i izbrisete dodatke u win.ini-u i registu
sa 'open' pregledate koliko puta i kad je program pokrenut (fajl Filelog.log u vasim //windows dir-u)

Program je testiran na win98, rabi i win9x stealth process (Stealthan za Ctrl-Alt-Del !)
Kako radi na NT/2000/XP/Me nisam testirao ... molio bi za mali test.

mali bug ??? barem kod mene ???:
nemam pojma, a znam da se programi u win.ini-u sekciji [windows] run i load separiraju sa ';', al ne znam zasto to ne radi kod startupa (Ni pravilno case-sensitive formatiranje ne radi ) Zasto ?
... Pa sam dao i u registar kljuc HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run pod string value 'LoadCurrentProfile' put do tog fajla !

Kako logirati tocno odredzen program :
program (Profiler.exe) kod instalacije radi samo u //windows dir-u !!
u MS-dosu u //windowsdiru// odkucajte Profiler.exe open
ili u Run-u otkucajte //windowsdir//Profiler.exe open
Default kot toga je program calc.exe, kliknite na textboxt sa programom, kojim ga zelite da izmenite, program treba biti Executable (*.exe ili *.com) u donjem textbox-u vidite i kad je program startan i kad se je program Zavrsio.
Program koji startuje i gleda kad ce biti zavrsen se nalazi u registru na HKEY_USERS\.DEFAULT\Software\VB and VBA Program Settings\Profiler by StratOS\Shell

Hm, kad sam to napravio htio sam da se malo bolje zabavim i sa zastitom !
Mozda cu i to napraviti ako budem imao vremena.

U jedan direktorij napraviti backup fajl, promenuti default u Explorer shellu kako tretira zagonske fajlove
Read 'default value' na HKEY_CLASSES_ROOT\.exe i KEY_CLASSES_ROOT\.com
Procitati i imeniti HKEY_CLASSES_ROOT\\'default value'\\shell\open\command
primjer HKEY_CLASSES_ROOT\comfile\shell\open\command i promjenuti default vrjednost sa
"%1" %* na recimo 'c:\windows\backup.exe %1" %*'

Znaci svaki put kad startujemo neki zagonski program prije se nam startuje nas backup program, koji ce odraditi svoje i kasnije startati taj zeljeni program ..
... ajde dosta toga
Pozdrav StratOS
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications."
"The one who is digging the hole for the other to fall in is allready in it."
Prikačeni fajlovi
 
Odgovor na temu

StratOS
Slovenija

Član broj: 2234
Poruke: 989
*.ce.sik.si



+1 Profil

icon Re: Skript "upisi trenutno vreme u neki.fajl; pokreni prog; upisi vreme u neki.fajl;15.10.2003. u 08:56 - pre 249 meseci
Sad kad sam ga malo testirao, vidio sam da ima josh jedan bug :
Kod izbora programa, treba promjeniti File string value u HKEY_USERS\.DEFAULT\Software\VB and VBA Program Settings\Profiler by StratOS\Shell

... ne radi mi se vishe ...
Pozdrav StratOS
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications."
"The one who is digging the hole for the other to fall in is allready in it."
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: Skript "upisi trenutno vreme u neki.fajl; pokreni prog; upisi vreme u neki.fajl;15.10.2003. u 09:49 - pre 249 meseci
Koristite WinAPI funkciju spawnlp() (ili neku drugu iz te "porodice"), i za mod stavite P_WAIT. Na ovaj nacin ce vam program startovati novi proces (drugi program) i CEKATI da se isti zavrsi. Veoma prosto jel'da? Naravno, isto se moze sa 5x komplikovanijom CreateProcess() funkcijom... spawnlp() mnogo laksa, zato sam je ovde predlozio.
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

[es] :: Skript jezici :: Skript "upisi trenutno vreme u neki.fajl; pokreni prog; upisi vreme u neki.fajl;

[ Pregleda: 5136 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Srodne teme
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.