Jak napisać program który będzie zgodny z usługą UAC w Viście (kontrola konta użytkownika) ?
Dzięki, zapoznałem się z artem i wiem więcej, ale nadal pozostaje mnóstwo pytań:
- Jak mogę usunąć plik w Viście (procedura DeleteFile nie działa, bo nie usuwa pliku !)
- Gdzie ma zapisywać zmodyfikowane pliki, np.: poprzez aktualizację pobranych plików, skoro w ProgramFiles (tam gdzie instaluje program) NIE MOGĘ (według arta) modyfikować plików
- Jak przeszukiwać zablokowane foldery np.: "Documents and Settings", do którego nie ma dostępu (blokuje je Vista)
- Jak operować na kluczach rejestru (usuwać je) - czy dotyczy to tylko kluczy w gałęzi HKEY_USER ??
Proszę o info, bo ta ochrona UAC jest bardzo problematyczna !
a) przecież masz "Dane aplikacji" czy Temp i tam sobie zapisujesz aktualizację tymczasowo, a potem odpalasz program aktualizacyjny na wyższych prawach i nadpisujesz co trzeba w \Program Files. Choćby tak robi Last.fm.
b) Documents and Settings nie istnieje. To hardlink. W Windows Vista masz katalog \Users. (See: http://www.winmyths.pl/2007/04/mit-pod-vista-nie-ma-dostepu-do-katalogu-documents-and-settings/)
c) Zwyczajnie. Kasować możesz jednak tylko z HKEY_CURRENT_USERS, a na prawach administratora zewsząd.
PS. Usuwanie pliku powinno działać. Aż chyba sprawdzę jak będę miał dostęp do Delphi w najbliższym czasie.
PPS. Problematyczne to są aplikacje, którym wydaje się, że powinny móc wszystko...
Pier - wystarczy wyjść z założenia, że to Twój system i nie jest tak, że aplikacja może wszędzie zrobić, co jej się żywnie podoba bez Twojej zgody.
Po to tak naprawdę powstał UAC. To nie jest uszczęśliwianie kogoś na siłę; to zadbanie o interes użytkownika. Z resztą jak pisałeś programy zgodnie z zaleceniami Microsoft'u do dziś (w tym wytycznymi odnośnie kont użytkowników nieuprzywilejowanych), to z UAC nie powinno być żadnych problemów. Jednak większość programistów nie robi tego do dziś.