Сохранить сопоставленную букву диска во время повышения UAC

StackOverflow https://stackoverflow.com/questions/244503

  •  05-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

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

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

Это было полезно?
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top