[ broker @ 21.09.2005. 10:51 ] @
Moze li neko da mi preporuci literaturu vezanu za pisanje Windows servisa? Za jedan progfram bi mi odgovaralo da ga tako napravim, ali nikako da nadjem korisnu literaturu na tu temu. |
[ broker @ 21.09.2005. 10:51 ] @
[ Srki_82 @ 21.09.2005. 11:33 ] @
Pa, ne treba ti literatura... ako hoces da napravis service app samo odes na File->New->Other...->Service Application. Wizard ti sve lepo napravi, na tebi je samo da postavis evente i napravis sta zelis da tvoj program radi. Odmah da ti kazem, service app ne moze da komunicira sa korisnikom, bar nikako nisam uspeo da je nateram, aposle sam video da i druge aplikacije koriste klijent program koji se povezuje na service i taj klijent ustvari predstavlja GUI.
Imas u Delphi Help lepo objasnjenje o servisima. [ broker @ 21.09.2005. 12:09 ] @
Ma napravio sam to, i to radi (mislim, program en puca, moze sse instalriati i deinstalriati kao servis i slicno.. ali nikako da provalim kako da mu povezem neki interfejs za podesavanje i pracenje rada apliakcije, osim da pravim sam neki protokol pa da upravljam iz eksterne aplikacije a i debug ovakve apliakciej je izgleda prilicno komplikovan.
Vidjao sam program koji rade kao standardna apliakciajkada ih pokrenes na uobicajeninacin, a rade kao servis ako ih pokrenes kao servis.. tako nesto bi mi trebalo. [ Srki_82 @ 21.09.2005. 12:23 ] @
To ce u Delphi-u da bude malo teze jer ako ubacis i Forms i SvcMgr unite u projekat promenljiva Application ce biti 2 puta deklarisana. forms ce je deklarisati kao TApplication, a SvcMgr kao TServiceApplication.
Mada... kad bolje razmislim to i moze da se uradi... SvcMgr.Application svakako kreira i koristi Forms.Application, samo ne znam kako bi se saznalo da li je win pokrenuo program kao servis ili je korisnik pokrenuo normalno program. [Ovu poruku je menjao Srki_82 dana 21.09.2005. u 13:34 GMT+1] [ Dragi Tata @ 21.09.2005. 13:17 ] @
@broker
Servisi ne treba da komuniciraju direktno sa korisnikom - mislim da će u sledećim verzijama Windows-a to da bude onemogućeno. Servisima se upravlja na sledeći način: - Osnovne operacije (start, stop, pause, itd) iz nekog SCP programa kao što je services MMC u Control Panel-u, ili net iz komandne linije - Konfiguracija iz registry-ja - Logging preko Event Log-a - Izveštavanje o statusu: perfmon Ako ti je potrebno neko složenije komuniciranje sa korisnikom, moraćeš da koristiš neki IPC mehanizam kao što su pipes ili sockets. Inače, sasvim je moguće da napraviš program tako da se pokreće kao "normalna" aplikacija ako ga pokreneš direktno, a kao servis ako ga pokreneš preko SCM-a, ali ne znam kako se to radi u Delphi-ju :) [ Srki_82 @ 21.09.2005. 13:45 ] @
Malo sam gledao SvCom unit i tek sad vidim kako je lako napraviti exe da radi i kao stand alone aplikacija i kao service
![]() Sve sto treba da uradis je ovo Code: program Servis; uses Forms, SvCom_NTService, Unit1 in 'Unit1.pas' {Service1: TService}, Unit2 in 'Unit2.pas' {Form1}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TService1, Service1); Application.CreateForm(TForm1, Form1); Forms.Application.ShowMainForm := True; Application.Run; end. Ako exe detektuje da ga je pokrenuo Service Manager ili je pokrenut sa /install ili /uninstall parametrima pokrenuce se kao servis, a ako detektuje da je obican korisnik pokrenuo program radice kao obican program ![]() Probano i radi 100% ![]() [Ovu poruku je menjao Srki_82 dana 21.09.2005. u 15:18 GMT+1] [ broker @ 21.09.2005. 14:39 ] @
Hvala Srdjane, probacu ovo.
Nego evo jedan tutorijal koji sam nasao a koji dosta moze dapomogne na pocetku: http://finn.mobilixnet.dk/delphi/service/service.htm [ broker @ 22.09.2005. 10:04 ] @
Eh, Srdjane, ovo tvoje radi samo sa SvCom unit-om.
DragiTata, znam, i nisam ni planirao da aplikacija ima neki veliki korsinicki interfejs, nego sam zeleo da napravim formu u kojoj bih mogao da pratim log desavanja u aplikaciji, posto ne vidim drugi nacin da je debug-ujem. Nameravam da napravim posebnu aplikaciju za podesavanje servisa koja bi sa servisom komunicirala preko TCP/IP tako da ne bi bilo ogranicenja da se mora nalaziti na istom racunaru kao i sam servis. Posto ova ideja da servis startujem kao obicnu eplikaciju izgleda otpada, onda da preformulisem pitanje: Kako uopste da debug-ujem servis? [Ovu poruku je menjao broker dana 22.09.2005. u 11:08 GMT+1] Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|