Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
hlopotun
Member

Откуда:
Сообщений: 368
Всем доброго дня,

Начиная с версии FB 2.5 нужно программно получить путь к папке куда инсталлирован FB и название сервиса под которым он запущен.
Из исходных в этот момент есть соединение с базой, соотв. известен порт. Есть доступ к реестру итп.

Спасибо
28 май 21, 17:44    [22328581]     Ответить | Цитировать Сообщить модератору
 Re: Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 27106
Нужно только в реестр заглянуть. Установщик оттуда и черпает информацию.
28 май 21, 17:46    [22328584]     Ответить | Цитировать Сообщить модератору
 Re: Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
hlopotun
Member

Откуда:
Сообщений: 368
wadman
Нужно только в реестр заглянуть. Установщик оттуда и черпает информацию.

я заглядывал, нашел несколько мест:
+
реестр
Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\FirebirdServerDefaultInstance
ImagePath

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Firebird Project\Firebird Server\Instances
DefaultInstance

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\FBDBServer_2_5_is1
InstallLocation

Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\FirebirdGuardianDefaultInstance
ImagePath

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FirebirdGuardianDefaultInstance
ImagePath

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FirebirdServerDefaultInstance
ImagePath

но установок может быть несколько, поэтому надо как то ещё и по номеру порта проверить.
Нужна какая то последовательность действий при поиске с учётом порта.
Можно конечно тупо лезть во все firebird.conf и искать RemoteServicePort = 3050 но как то это через ж. выглядит.
Интересно было бы логику самого FB установщика узнать.
28 май 21, 17:57    [22328588]     Ответить | Цитировать Сообщить модератору
 Re: Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
hlopotun
Member

Откуда:
Сообщений: 368
походу надо обращаться напрямую к firebird api сервисам, никогда этого не делал.
У кого то есть пример работы с ними?
28 май 21, 18:10    [22328594]     Ответить | Цитировать Сообщить модератору
 Re: Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
hlopotun
Member

Откуда:
Сообщений: 368
тут что то есть
28 май 21, 18:20    [22328608]     Ответить | Цитировать Сообщить модератору
 Re: Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2125
hlopotun
но установок может быть несколько,

И ничего ты там не увидишь. Каждый инсталлирует, как ему хочется. Мой инсталлятор вообще в в реестр ничего не пишет. Например.
28 май 21, 21:34    [22328684]     Ответить | Цитировать Сообщить модератору
 Re: Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4654
Начиная с FB 1.5 название службы неизменно - FirebirdServerDefaultInstance.

Путь к экзешнику легко получается с помощью получения информации о службе (OpenService->QueryServiceConfig), ExtractFileName.
29 май 21, 01:14    [22328726]     Ответить | Цитировать Сообщить модератору
 Re: Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4654
YuRock
Начиная с FB 1.5 название службы неизменно - FirebirdServerDefaultInstance.

Путь к экзешнику легко получается с помощью получения информации о службе (OpenService->QueryServiceConfig), ExtractFileName.
Ну, это всё, конечно, если не установлено несколько фаербердов. Как это сделать, и как тогда быть - я хз, мне это не интересно.
29 май 21, 01:16    [22328727]     Ответить | Цитировать Сообщить модератору
 Re: Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12901
А не проще было бы спросить в ветке Firebird? Там бы точно ответили
29 май 21, 16:40    [22328802]     Ответить | Цитировать Сообщить модератору
 Re: Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
Fr0sT-Brutal
Member

Откуда:
Сообщений: 755
Перебор процессов доступен? Ищешь по бинарнику firebird.exe, получаешь путь.
31 май 21, 10:34    [22329166]     Ответить | Цитировать Сообщить модератору
 Re: Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
Шавлюк Евгений
Member

Откуда: Одесса
Сообщений: 564
Смотришь кто слушает порт 3050, а по PID уже ищешь процесс
31 май 21, 13:32    [22329299]     Ответить | Цитировать Сообщить модератору
 Re: Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32405

31.05.2021 13:32, Шавлюк Евгений пишет:
> Смотришь кто слушает порт 3050

не константа.

Posted via ActualForum NNTP Server 1.5

31 май 21, 13:41    [22329304]     Ответить | Цитировать Сообщить модератору
 Re: Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12901
Шавлюк Евгений
Смотришь кто слушает порт 3050,
А как?

Мимопроходящий
не константа.
hlopotun
Из исходных в этот момент есть соединение с базой, соотв. известен порт.
31 май 21, 13:53    [22329314]     Ответить | Цитировать Сообщить модератору
 Re: Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32405

_Vasilisk_, забей.
ТС - врун и мечтатель.

Posted via ActualForum NNTP Server 1.5

31 май 21, 13:57    [22329318]     Ответить | Цитировать Сообщить модератору
 Re: Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12901
Мимопроходящий
_Vasilisk_, забей.
Ну netstat же вытягивает эту информацию. Вот интересно как
31 май 21, 14:38    [22329355]     Ответить | Цитировать Сообщить модератору
 Re: Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 29820
hlopotun
Интересно было бы логику самого FB установщика узнать.

так открой iss установщика ФБ и посмотри.
https://github.com/FirebirdSQL/firebird/tree/master/builds/install/arch-specific/win32
31 май 21, 14:42    [22329359]     Ответить | Цитировать Сообщить модератору
 Re: Путь к инсталлационной папке Firebird через реестр или ещё как?  [new]
Шавлюк Евгений
Member

Откуда: Одесса
Сообщений: 564
_Vasilisk_,

netstat -q -o
tasklist /SVC

Ну свой порт ТС думаю знает, иначе у клиента может быть установлено несколько серверов и по имени "firebird.exe" смотреть неправильно
31 май 21, 15:05    [22329380]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить