UAC - rozpoznawanie uprawnień

0

Witam,

tworze programik w którym użytkownik ma możliwość wyboru ścieżki zapisu pliku. Czasem może się zdarzyć, że user bez praw administratora będzie chciał zapisać plik np. do {program files}, wtedy dostaje wyjątek "EFCreateError". W związku z tym mam dwa pytania:

  • jak najlepiej sprawdzić czy "mam" dostęp do tworzenia plików w danym katalogu (na chwilę obecną przychodzi mi sposób: stworzenia próbnego pliku, jeśli się powiedzie to wykasowanie go oraz result:=true, a jesli błąd to result:=false;

  • czy jest możliwość podwyższenia uprawnień użytkownika? Np. poprzez wywołanie odpowiedniego okienka UAC? Jeśli tak to czy możecie mnie nakierować mniej więcej czego powinienem szukać?

pozdrawiam

0

Do sprawdzania uprawnień radziłbym ci poszukać jakiejś biblioteki w Delphi. Jak sam widzisz, ta część Windows API jest.. dość obszerna. Napisanie takiej funkcji własnoręcznie może i by zajęło 5 linijek w .NET, ale bezpośrednio przy użyciu API raczej nie :).
Kilka nawet google od razu znajduje.
Tworzenie i usuwanie pliku to nie jest najlepsza metoda, możesz mieć uprawnienia do tworzenia, ale nie usuwania plików.

A najprostsza metoda na podwyższenie uprawnień to.. uruchomienie nowego procesu (który zrobi to co ma zrobić i się wyłączy) z manifestem, który ich żąda. Tak to robi sam Windows. Są inne sposoby, ale jest z tym bardzo dużo niewartego kombinowania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1