Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как найти пути к Drivers и CatRoot / 10 сообщений из 10, страница 1 из 1
07.10.2016, 07:41
    #39322392
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти пути к Drivers и CatRoot
Конкретно интересуют папки
C:\Windows\System32\drivers
C:\Windows\System32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE} //здесь MS хранит каталоги с подписями к системным драйверам

Через стандартные .Net-функции (системные папки) и соответствующие API конкретно эти в лоб вроде не ищутся.

Хотя один способ я знаю: найти <C>:\Windows\System32\ и тупо скомбинировать с оставшейся частью.
С учетом того что на Win10 С: он всегда C: то можно и вообще не заниматься вычислениями (на Висте и 7-ке еще был способ "установить на D", если установку начинать из-под другой системы, начиная с 8-ки это не работает, других способов не знаю).

Но все же?

И до кучи чтоб не плодить тем.
Вот мувнул я каталог с подписью в C:\Windows\System32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}
Или например убрал его оттуда.
Сдается мне, что система не всегда сразу понимает что подписи уже нет, или что она там есть.
(после перезагрузки все всегда корректно)
Нет способа сделать Refresh этому делу и пересоздать все "кэши"? (сразу и без перезагрузки)
...
Рейтинг: 0 / 0
07.10.2016, 08:04
    #39322401
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти пути к Drivers и CatRoot
В WinAPI есть SHGetFolderPath()
https://msdn.microsoft.com/ru-ru/library/windows/desktop/bb762494(v=vs.85).aspx CSIDL_SYSTEM

Version 5.0. The Windows System folder. A typical path is C:\Windows\System32.
...
Рейтинг: 0 / 0
07.10.2016, 08:30
    #39322417
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти пути к Drivers и CatRoot
Dima T,

Это я все знаю.
Но там нет ключей чтоб конкретно drivers и CatRoot выводило.
...
Рейтинг: 0 / 0
07.10.2016, 08:35
    #39322421
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти пути к Drivers и CatRoot
Напр. для принтеров есть
Код: vbnet
1.
2.
3.
 Public Declare Unicode Function GetPrinterDriverDirectory Lib "winspool.drv" Alias "GetPrinterDriverDirectoryW" _
  (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Integer, _
   ByVal pDriverDirectory As StringBuilder, ByVal cdBuf As Integer, ByRef pcbNeeded As Integer) As Boolean



Выводит
DriverDirectory: C:\WINDOWS\system32\spool\DRIVERS\x64\

Но то для принтеров.
...
Рейтинг: 0 / 0
07.10.2016, 08:41
    #39322427
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти пути к Drivers и CatRoot
ИМХУ сомневаюсь что есть какая-то гибкая настройка для каждой подпапки System32. Если бы было, то скорее всего было бы в реестре, там я по CatRoot ничего не нашел.
...
Рейтинг: 0 / 0
07.10.2016, 08:47
    #39322428
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти пути к Drivers и CatRoot
Dima T,

Ну а по Drivers хотя бы?
Я знаю:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  Public Function GetDriverCachePath() As String
    Dim the_str As String
    the_str = GetCorrectPath(RegGetValue_Net(Registry.LocalMachine, _
     "SOFTWARE\Microsoft\Windows\CurrentVersion\Setup", "DriverCachePath", ""))
    If Strings.Len(the_str) > 0 Then
      GetDriverCachePath = CorrectDir(the_str)
    Else
      GetDriverCachePath = the_str
    End If
  End Function



Хотя сдается мне это нигде кроме как на XP давно не работает.
...
Рейтинг: 0 / 0
07.10.2016, 08:58
    #39322437
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти пути к Drivers и CatRoot
По drivers очень много всего находится.
Вот например в HKLM\SOFTWARE\Microsoft\DirectMusic
Код: c#
1.
%SystemRoot%\system32\drivers\GM.DLS


И подобная конструкция неоднократно попадается у меня в реестре.

ИМХУ если MS так пишет, то вероятнее всего все пути относительно папки виндовса заданы жестко, а всякие вспомогательные функции получения подпапок просто для удобства.
...
Рейтинг: 0 / 0
07.10.2016, 09:07
    #39322442
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти пути к Drivers и CatRoot
Dima T,

В стандартных "переменных среды" тоже нет:
Код: vbnet
1.
2.
  Public Declare Unicode Function GetEnvironmentVariable Lib "Kernel32.dll" Alias "GetEnvironmentVariableW" _
  (ByVal lpName As String, ByVal lpBuffer As String, ByVal nSize As Integer) As Integer



Ну тогда только вычислять System32, остальное приписывать.
...
Рейтинг: 0 / 0
07.10.2016, 15:19
    #39322880
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти пути к Drivers и CatRoot
Дмитрий77В стандартных "переменных среды" тоже нет:

Чем не устраивает
Дмитрий77Хотя один способ я знаю: найти <C>:\Windows\System32\ и тупо скомбинировать с оставшейся частью.
Не понял почему это плохо
...
Рейтинг: 0 / 0
07.10.2016, 19:19
    #39323027
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти пути к Drivers и CatRoot
Cat2Чем не устраивает
Дмитрий77Хотя один способ я знаю: найти <C>:\Windows\System32\ и тупо скомбинировать с оставшейся частью.
Не понял почему это плохо
Привык цепляться потому что, чтоб в один прекрасный раз не огрести по полной.

Ладно, хрен с ним:
Код: vbnet
1.
2.
3.
4.
5.
6.
    Dim sys_folder As String
    Dim path_modem_sys As String
    Dim path_catalogs As String
    sys_folder = GetFolderPath(SpecialFolder.System)
    path_modem_sys = IO.Path.Combine(sys_folder, "drivers\modem.sys")
    path_catalogs = IO.Path.Combine(sys_folder, "CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}")
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как найти пути к Drivers и CatRoot / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]