Jag letar runt lite efter information om hur man skriver en applikation som fungerar som en NT-Service i Windows 2000. Jag har sett att det går, det finns activex-kontroller som gör det och även läst varningar om att göra services i VB6. Vilken EventLog? NT/2000 eller? Jag hittade detta bland mina bokmärken(http://www.vbwire.com/advanced/howto/service.asp), har inte testat det själv och jag vet inte om det fungerar i W2K, men du kan ju kolla på det. Hade denna URL sparad för framtiden. Kanske kan ge något. Nu undrar jag vad det är för nytta med att över huvudtaget skriva det som en service - att ha ett program som ligger på en timer borde gå lika bra, eller? (gäller Win2000) Kanske inte om programmet själv har timern. Då är det ju som det står: Man måste ha en inloggad User för att få programmet att starta. Om man däremot har en timer-tjänst av något slag så funkar det mycket bättre. Det blev inte 100% som jag tänkt men det fungerar och det är ju huvudsaken. Det fanns en activex som heter NTService.ocx som jag använde mig av för de 4 momenten, start, stopp, paus, fortsätt. Du vet att du kan få en service att reagera på olika saker va??? Att trigga händelser i eventloggen var inte fy skam. Får se om jag hittar information om det. Dock tror jag timer krävs i alla fall eftersom det inte blir någon äkta service i vb.. Annars är det väl ett bra första projekt för .net som har templates för services.Skriva en Service I VB6 (win2000)
Det jag skall göra är att skriva ett program som ligger på timer och läser i eventloggen, kommer något nytt där så skall den skriva det till en tabell på en annan server. Är det någon som har länkar, tips eller gärna programkod till hur man på ett korrekt sätt skriver en Service?
Hälsningar
/PelleSv: Skriva en Service I VB6
Gör ett vanligt program, och kör igång det regelbundet. Schemalägg ifrån SQL Server - eller WINAT kommandot. Om programmet funkar "unattended" = startar och stannar själv så borde det funka utan att göra en service...
/mickeSv: Skriva en Service I VB6
/JohanSv: Skriva en Service I VB6
http://www.vb2themax.com/HtmlDoc.asp?Table=Books&ID=3100&Page=1
/JanneSv: Skriva en Service I VB6
Så här säger Microsoft varför man skall använda Services:
Microsoft® Windows NT® services are processes that run without requiring a user to be logged on to the system. Typically, we see such services being used for industrial-strength application servers, such as Microsoft SQL Server and Microsoft Exchange Server, or for parts of the operating system, as in the case of Dynamic Host Interface Protocol (DHCP) and Windows® Internet Name Service (WINS) servers.
The services architecture also offers an attractive solution when you need an application to:
Start when the operating system boots up even if no user is logged on.
Start and stop the process remotely by authorized personnel such as domain administrators.
Log on with an account in order to access domain resources with integrated security. Examples of these resources include Microsoft Exchange Server mailbox agents and data collection processes.
Previously, developers could write services only in C or C++. The operating system interface for services requires a callback function and blocks the main thread of execution. Because Visual Basic 4.0 has neither threads nor callback functions, developers cannot call these application programming interfaces (APIs) directly. Consequently, developers of Visual Basic applications relied on the SRVANY utility provided in the Windows NT Resource Kit. This tool allows any executable to be started by the system at boot time; however, because the communication between SRVANY and the application is limited to standard window messages, the solution is not very robust. Moreover, SRVANY lacks support for the pause and continue functions.
The NTService OLE Control eliminates the need for helper processes like SRVANY by enabling Visual Basic applications to directly interface with the services’ APIs. The control translates signals from the operating system into events that can be processed by the Visual Basic application. It also provides support for functions that services typically require, such as installation and event loggingSv: Skriva en Service I VB6
Det är VERKLIGEN så som MS skriver. En VB-app som använder SRVANY(service API) kommer inte att vara robust = kommer att krascha relativt ofta. (Kraschar både sig själv och systemet...)
Nu vet jag att jag får mothugg av många som skriver att "jag har gjort det och det funkar gööörbra". Visst det KAN funka bra, men risken är att det inte gör det. Hur stor risk vill man ta när man kodar. Jag är restriktiv med "fräcka features" för att få stabila progarm.
/mickeSv: Skriva en Service I VB6
Sen använde jag en timer för att på visst intervall utföra en läsning i eventloggarna, koppla upp sig mot databas och skriva de poster som lagts till sedan förra kontrollen.
Mycket mer än så var det inte. Skulle någon hitta bra kod för att slippa använda en OCX så skulle det vara intressant att få se den.
Hälsningar
/PelleSv: Skriva en Service I VB6
Exempel, du kan ha en service som ploppar igång en viss metod när något av följande händer:
En nyckel förändras.
En händelse skrivs till eventloggen.
Någon kontaktar din dator.
En fil skapas på ett visst ställe.
osv...
Detta finns mycket bra dokumenterat i MS-SDK, detta innebär också att du inte behöver ha några timers för specifika uppgifter. Nackdelen är att det blir MYCKET API att få ordning på (har själv inte orkat testa men har sett tjänster använda denna teknik).Sv: Skriva en Service I VB6
/PelleSv: Skriva en Service I VB6