Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: NTFS Links - обсуждение 
Author Message
MVV



PostPosted: Sat Oct 08, 2011 20:37    Post subject: Reply with quote

CaptainFlint wrote:
Планируется непременнейшим образом. Конкретно юникодная сделана давным-давно чуть менее, чем полностью, просто я там начал добавлять поддержку вистовых симлинков, а оказалось, что их без повышения привилегий не создашь (а повышение привилегий — это до ужаса муторная вещь Sad ).

Ну не так и муторно повысить привилегии. Привилегия всего одна требуется. Вот код для получения (писал для NTLinks):
Code:
bool GetCreateSymlinkPrivileges() {
   HANDLE hToken; TOKEN_PRIVILEGES tp;
   bool result=0;

   if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) {
      tp.PrivilegeCount=1;
      tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
      if (LookupPrivilegeValue(0, SE_CREATE_SYMBOLIC_LINK_NAME, &tp.Privileges[0].Luid)) {
         result=AdjustTokenPrivileges(hToken, 0, &tp, sizeof(TOKEN_PRIVILEGES), 0, 0)!=0 && !GetLastError();
      }
      CloseHandle(hToken);
   }

   return result;
}


Пробуешь включить привилегию, не получилось - спрашиваешь юзера о повышении. Добро - запускаешь себя же с повышением и спец. ключом, чтобы при неудаче уже не запрашивать юзера о повышении (я не вдавался в подробности, как узнать, с повышением ли запущена прога). По идее, совсем не сложно. А этот ключ в ридми описываешь как "ключ отключения запроса повышения при неудаче". Smile

А компилить можно так же на 6 студии, чтоб без зависимостейSmile но отключить совместимость с вин98 (выравнивание секций в файле по 4 кило).
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
View user's profile Send private message ICQ Number


Powered by phpBB © 2001, 2005 phpBB Group