Cześć, piszę dość spory system, który może sam się aktualizować. I tu się pojawia problem na systemie Windows Vista i 7.
Otóż system składa się z kilku składnkików. M.in. klient, manager usługi, usługa, updater.
Updater jak sama nazwa wskazuje zajmuje się aktualizacją.
I teraz tak. W skrócie polega to na tym, że manager usługi wysyła do usługi żądanie sprawdzenia aktualizacji. Usługa pobiera sobie informacje z netu i wysyła informacje poszczególnym składnikom aplikacji, że mają się aktualizować, lub nie.
Następnie składnik odpala aplikację updater, która go zamyka i dalej aktualizuje odpowiedni składnik.
Wszystko działa ok, jesli chodzi o klienta i managera usługi. Natomiast z samą usługą na Viście i 7 jest problem(XP działa ok).
Updater jest aplikacją okienkową. I usługa musi uruchomić tą aplikację.
Robię to za pomocą sposobu podanego tutaj: http://4programmers.net/Forum/viewtopic.php?id=157435
Jak przedstawiono w ww. temacie, usługa wykonuje się do pewnej instrukcji, a potem nic się nie dzieje. Dzisiaj wreszcie udało mi się rozkminić o co chodzi, a chodzi o UAC.
Gdy wyłączyłem te zabezpieczenia w systemie, wszystko poszło ok. A więc całość rozbija się, z tego co wyczytałem o automatyczne podniesienie uprawnień. Niestety, żeby to zrobić, aplikacja(jak wyczytałem) musi być certyfikowana przez Windows.
Dzwoniłem do MS w tej sprawie, jednak pani co tam siedzi i maluje paznokcie nic nie była mi w stanie konkretnego powiedzieć. Więc może ktoś z Was powie jak i gdzie zdobyć taki podpis/certyfikat i czy w ogóle w dobrą stronę kombinuje, czy można to zrobić inaczej.