![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| drkot |
|
||||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: нет Всего: 8 |
При вызове под пользователем:
При вызове под System:
Кому верить? И почему так? Это сообщение отредактировал(а) drkot - 11.9.2014, 12:13 -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
||||
|
|||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
Код в студию.
|
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: нет Всего: 8 |
Насчет функции кто-то ошибся...
На самом деле ее зовут "GetVersionEx"
в остальном как описано -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
drkot, накидай тестовый проект в консоли - не понятно, как эта строка сформировалась.
|
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: нет Всего: 8 |
Формирование строки не суть важно. Оно идет на основе анализа OSVersionInfoEx, опираясь на константы из MSDN. Все тривиально.
Суть в том, что при вызове GetVersionEx под локальным пользователем и под системой (сервис) возвращаются разные данные. Строки приведены для наглядности различий. Получается что опираться на данную функцию (для определения версии системы) нельзя, так она не выдает детерминированные результат. Например идет инсталляция сервиса, проверяется версия ОС, все допустим она устраивает. Запускаем сервис, проверяем версию ОС и выясняется что это не R2. Сервис прерывает запуск, так как используются специфичные функции. Тоже касается и билда системы. Собственно: -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 14 Всего: 58 |
drkot, зависит от констант, которые используются. В частности, в MSDN для VER_NT_SERVER есть такое интересное замечание, как:
Из-за чего можно получить неверный результат, если используешь эту константу. Это сообщение отредактировал(а) Keeper89 - 12.9.2014, 20:58 |
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: нет Всего: 8 |
во первых это возвращаемое значение, следовательно оно не влияет на выдачу результата. Во вторых оно никак не связано с билдом и старшими номерами версии и с наличием сервис паков. в которых собственно и наблюдается различие. Windows Server 2012 R2 6.3* Windows Server 2012 6.2 Если это данные из реестра, то понятно, что они могут быть разными в пользовательских ветках. Хотя это и не хорошо. Получается что достоверно идентифицировать системы не получается... -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |