Mam aplikacji (usługa systemu Windows), który jest zainstalowany w katalogu w folderze Program Files. Oprócz tej aplikacji jest kolejną aplikacją WinForms, która służy do konfigurowania usługi (między innymi). Kiedy wykonuje konfigurację, zapisuje zmiany w pliku konfiguracyjnym, który funkcjonuje wraz z usługą.Prawidłowy sposób postępowania z UAC w języku C#
Podczas uruchamiania w systemie Vista/Win7 UAC uniemożliwia użytkownikowi zapisywanie do pliku konfiguracyjnego. Co chciałbym zrobić, to:
- umieścić ikonę tarczy obok pozycji menu używane do konfigurowania
- monit o uprawnieniach UAC, kiedy ta pozycja jest wybrana
- pokazać tylko ikona/szybka kiedy na zasadzie OS że wymaga
- tylko pokazać się ikona/szybka kiedy wymagane są uprawnienia (np. jeśli aplikacja jest zainstalowana gdzieś, że nie wymaga zgody UAC)
ja naprawdę nie chce uruchomić całą aplikację jako administrator, ponieważ jest również używany do innych celów, które nie wymagają uprawnień UAC (więc ustawienie pliku manifestu aplikacji nie jest poprawnym rozwiązaniem). Zakładam też (popraw mnie, jeśli się mylę), że gdy uprawnienia UAC zostaną przyznane, mój istniejący proces nie będzie mógł wykonać akcji i będę musiał rozpocząć nowy proces.
Jak najlepiej to osiągnąć?
Musiałem trochę przeskoczyć przez obręcze, żeby to poprawnie zakodować, ale dzięki Mateuszowi mam coś podobnego do tego, co opisałem powyżej. – adrianbanks
Dobrze słyszeć. UAC czasami sprawia ból, ale twoje oprogramowanie jest naprawdę lepsze. –