Är det någon här som är superb på Win Servicec. Lite letande på msdn.microsoft.com/library i win32 api delen ger följande:Win Service onShutDown
Jag har en tjänst som jag vill skall utföra x antal saker när datorn startas om.
Jag har en del rutiner under Stop och det går bra så länge man kör manuell stoppning av en tjänst.
Men när man startar om windows elller stänger av den så anropas OnShutDown denna verkar bara
få viss tid på sig? Någon som vet något mer om denna? Kan man få den att vänta så windows inte starar om förrän ajg är klar med mina rutiner under denne metod?
Mvh JohanSv: Win Service onShutDown
Anropa följande api:
SetServiceStatus
Den första parametern är en statushandle, den finns i ServiceBase-klassen som en privat medlem. Handlen får servicen när den registrerar callback-saken Du får nog använda reflection för att få tag på handlen, eller skapa en dummy-metod och registrera callback för den också. Känns overkill, reflection känns bättre. Variabeln med handlen heter "statusHandle" och är av typen "IntPtr"
Den andra parametern är en struktur av typen "SERVICE_STATUS".
I dne strukturen ska ska följande variabler sättas:
dwCurrentState ska sättas till SERVICE_STOP_PENDING
dwWaitHint ska sättas till antal millisekunder som det beräknas ta att slutföra
I nyckeln "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WaitToKillServiceTimeout" kan du ändra maxtiden för hur lång tid en service får ta på sig
Anropa koden ovan i OnShutDown
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/handlerex.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/setservicestatus.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/service_status_str.asp