Форум: "Прочее";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2009.11.15;
Скачать: [xml.tar.bz2];




Вниз

Как путь типа SystemRoot ... превратить в нормальный? 


DVM ©   (2009-09-19 02:30) [0]

В разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
у каждого сервиса есть параметр ImagePath.

Так вот, у некоторых сервисов этот путь указан в виде:
\SystemRoot\System32\drivers\afd.sys

у других:
system32\DRIVERS\tmeter.sys

Во всех случаях система без проблем находит файлы сервисов.

ВОПРОС: Нет ли какой функции, которая могла бы преобразовать такие пути в нормальные? ExpandEnvironmentStrings() не предлагать, она преобразует только %SystemRoot%. SearchPath() тоже такое не находит.



DVM ©   (2009-09-19 02:33) [1]

Там конечно не только сервисы, а еще и драйверы, но это не важно. Важны пути.



DVM ©   (2009-09-19 12:16) [2]

Насколько я понимаю, \SystemRoot в данном пути - это символическая ссылка?
Как такую ссылку преобразовать в полный путь, начинающийся желательно с буквы диска и т.д.?

system32 - это вообще непонятно что (во втором пути).

Я конечно могу тупо заменить  SystemRoot на папку Windows, к system32 дописать папку Windows в начале, но это мне кажется не самый лучший вариант.



Игорь Шевченко ©   (2009-09-19 12:49) [3]


> Насколько я понимаю, \SystemRoot в данном пути - это символическая
> ссылка?


нет, systemroot - это не символическая ссылка. Это переменная окружения без обрамляющих %
недаром тип этого значения в реестре равен REG_EXPAND_SZ



DVM ©   (2009-09-19 15:21) [4]


> Игорь Шевченко ©   (19.09.09 12:49) [3]


> Это переменная окружения без обрамляющих %

Странно, как в данном случае эту переменную можно отличить от с именем SystemRoot

Вот здесь http://x64.blog.ru/51061171.html сказано, что это имена подсистемы Native. Но что то там разбор этого имени слишком муторный.



Игорь Шевченко ©   (2009-09-19 17:07) [5]

DVM ©   (19.09.09 15:21) [4]


> Вот здесь http://x64.blog.ru/51061171.html сказано, что
> это имена подсистемы Native. Но что то там разбор этого
> имени слишком муторный.


Так никто не мешает проверить, вызвав NtOpenSymbolicLink|NtQuerySymbolicLink

утилита Winobj от sysinternals такой ссылки не показывает в пространстве имен менеджера объектов, потому я и посчитал, что переменная окружения.
Может и ошибся и ее имя жестко прописано внутри системы.

Но переменная окружения с таким именем имеется :)




Форум: "Прочее";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2009.11.15;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.015 c
15-1252140185     Пит                   2009-09-05 12:43  2009.11.15  
Перехват функций игры Battlefield 2


15-1253180682     Дмитрий С             2009-09-17 13:44  2009.11.15  
Как в JS получить метод которым загружена страница?


15-1253223003     Юрий                  2009-09-18 01:30  2009.11.15  
С днем рождения ! 18 сентября 2009 пятница


2-1254139608      dplz                  2009-09-28 16:06  2009.11.15  
Прозрачный color на label е, возможно?


15-1251884197     Piter                 2009-09-02 13:36  2009.11.15  
Размер дистрибутива .NET