[ brankok @ 13.01.2003. 09:49 ] @
Pozdrav Svima!

Imam sledeci problem: Trebam napraviti program koji je servis (proces, slicno Unix Daemon-u, ali platforma je Win32). Korisnik ne sme da vidi da je ovaj program aktivan,
znaci program ne sme imati prozor (jedini nacin da korisnik postane svestan aktivnosti ovog programa bio bi pogled u "Processes"
polje Windows Task Managera). Razvojno okruzenje je Visual C++ 6.

1) Kako da kreiram projekat?
2) Kako kada napravim EXE da ga instaliram, tj. kako da registrujem moj servis (proces) kod Windowsa?

Svi saveti su dobrodosli.
Hvala & pozdrav,
Branko
[ sspasic @ 13.01.2003. 10:12 ] @
Imas primer u VC++ samples koji pokriva sve to:
sdk/winbase/winnt/service

primer kreira windows servis i radi na WinNT/Win2K.

Naravno, i na Win9x se slicna stvar moze uraditi, ali to je onda obican program koji radi u pozadini i mehanizme za pokretanje/zaustavljanje/logovanje moras da pravis sam.
[ ImPlant @ 13.01.2003. 14:23 ] @
znam da postoje projekti koji se specificno rade da budu win servisi ali ne znam tacno koja je razlika izmedju takvog projekta i obicnog programa.
ne znam kakav tebi treba program ali bilo koja aplikacija moze da se namesti da radi kao servis, ako te vise interesuje kako potrazi na netu tacno upustvo (imas i na MS.com) potrebni su ti sledeci pomocni alati:
srvany.exe i
instsrv.exe .ta dva su alati za rad preko cmd linije + podesavanje u registry
a ako te to mrzi (ili neinteresuje mozes da koristis MS wizard srvinstw.exe

okacicu zap sa sva tri programa.

http:\\217.26.67.140\aaa\servis.zip

[ Dragi Tata @ 17.01.2003. 06:19 ] @
http://www.codeproject.com/system/#Services
[ Shadowed @ 18.01.2003. 16:47 ] @
Citat:
ImPlant:
znam da postoje projekti koji se specificno rade da budu win servisi ali ne znam tacno koja je razlika izmedju takvog projekta i obicnog programa.

Razlika je u tome sto kad obican program instaliras kao service i iskljucis interakciju sa desktopom OS sakrije taj program i to sve izgleda regularno ali kad napavis service plikaceiju imas i mogucnosti da reagujes na Start, Pause, Resume i Stop dogadjaje koji se desavaju servisima.
[ Pera_Anarhista @ 19.01.2003. 23:34 ] @
ako zelis da sakrijes program:

Code:

    FARPROC RegisterServiceProcess=GetProcAddress( LoadLibrary( "KERNEL32.DLL" ),
                                                "RegisterServiceProcess");
    RegisterServiceProcess(NULL,1); // sakri iz CTRL+ALT+DEL

    RegisterServiceProcess(NULL,0); // opet prikazi


ili odmah posle starta programa:

Code:

    ShowWindow(hwnd, SW_HIDE);


jesu "jadni" trikovi, ali mozda je bas to sto ti treba...
ima jos jedan "jadniji" - staviti x & y koordinate prozora na -1...