Сохранить сопоставленную букву диска во время повышения UAC - PullRequest
0 голосов
/ 28 октября 2008

У нас есть приложение, которому нужно знать путь, с которого оно выполняется (которое всегда является сетевым путем).

Мы настраиваем часть нашей конфигурации на основе пути, с которого запускается приложение, и мы действительно хотим, чтобы в этой конфигурации использовались сопоставленные пути сетевых дисков вместо UNC-пути к ресурсу.

Мы обнаружили, что когда мы запускаем наше приложение без повышения UAC, мы можем получить каталог, из которого приложение запускается с помощью

GetModuleFileName(NULL, buf, sizeof(buf));

Но когда мы запускаем с повышенными правами (что нам действительно нужно сделать), возвращаемый буфер дает нам путь на основе UNC вместо пути на основе буквы диска.

Обратите внимание, что мы всегда запускаем из проводника Windows путем перехода в дерево папок с буквой подключенного диска.

Есть ли у кого-нибудь предложения о том, как получить путь к EXE-файлу на основе буквы диска из процесса, работающего с повышенными правами?

1 Ответ

2 голосов
/ 28 октября 2008
...